티키카타! 코드타카! - 3

Judy·2021년 10월 24일
0
post-thumbnail

🎵 문제

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.

str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환)

예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문

str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문

str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문

🤔 생각하자

  • 문제를 정확하게 이해하기 위해 여러번 읽어보았다.
  • string형인 인자.... 배열로 인덱스 하나씩 돌려볼 필요가 있고..
  • 중복되는 알파벳까지 찾아가야하고
  • 중복되는 알파벳을 만나면 멈추고 길이의 값으로 리턴받아야 한다.
  • 그러니깐 중복되지 않을 때까지 돌리다가 중복되는 애를 만나면 그곳에서 멈춰서 멈춘 그곳까지의 길이를 숫자로 반환해야한다.
  • 흐음.. 길이, 요소 찾고 하는 것은 배열로 진입하는 방법만 떠오른다.
  • 배열만 떠오르다가 생각이 막혔다. 다른 사람들의 코드를 보면서 하나씩 추리해볼까?

🤓 풀어보자

  • 벨로그 이전 자료들을 보면서 내가 이해하고 받아들일 수 있는 코드를 계속 찾아보았다. 코드가 길어보였지만 이미지와 함께 있는 글이 눈에 들어왔고 참고해보았다! (벨로그 이전 자료를 보면서 어떻게 접근했는지 살펴보았다.)
  • 역시 난 그림이 조금이라도 있어야 이해가 더 잘된다!
  • 빈 배열 등 변수를 먼저 선언해서 접근하는 방식이 확실히 그려지지않는다.
  • 이중for문을 통해 배열의 요소들을 반복이 되는 인덱스까지 계속 돌며 빈 배열에 담는 방법이 사용되었고, join되어 문자열-> length값이 먼저 선언된 변수 strArchive 빈 배열에 담겼다.
  • 재미있었던 것은 sort()라는 새로운 메소드가 등장한 것이였다.
    sort 단어 자체도 종류,분류하다 라는 뜻을 가진 단어였으며, 네이버 지식백과에서 '소프트웨어 어휘다지기 - 초등' 라는 글에서 이해하기 쉽게 설명이 작성되어있었다. 요즘 초등학생은 다 알고 있는건가..? 분발해야겠다.
  • 열심히 for문을 모든 돌린 후 length값이 담겨져 있는 strArchive정렬한 후 가장 긴 길이가 위치된 첫번째 인덱스값을 return 하였다.

👏👏 풀이를 저렇게 생각해낸다는 것이 정말 멋있는 것 같다. 나도 이 풀이를 따라가기 위해서 정말 쓰고 지우고 쓰고 지우고 색칠하고 긴 시간을 보내면서 이해를 해볼 수 있어서 즐거웠다. 지금 당장은 나 스스로 꺼내볼 수 없었던 해결 과정이였지만 하루 하루 알아가다보면 나도 누군가에 알게 쉽게 설명해줄 수 있는 그런 멋쟁이가 되길바래본다.😚

profile
영원히 공부하는 멋진 장선생!!

0개의 댓글