알고리즘 : 중복이 없는 가장 긴 단어 찾기

dory·2021년 4월 28일
0

알고리즘

목록 보기
3/7
post-thumbnail

문제

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

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

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

풀이

🚗 빈 배열인 arr에 str의 한 글자씩 넣어준다. 이때 이미 넣어진 값을 만나면 break를 걸어서 for문이 종료된다.
-> 같은 값을 만날때까지 반복하는 for문
🚗 그리고 arr담긴 요소를 join으로 한 덩어리의 문자열로 만든 후에 length값을 strArchive라는 빈 배열에 저장한다.
-> strArchive는 length만 담고 있는 배열
-> 굳이 join을 사용해서 문자열로 타입을 바꾸지 않아도 됨
🚙 종료 된 시점 이후의 나머지의 경우도 확인해야하므로, 밖에 for문으로 감싼다.
-> str길이만큼 반복하는 for문 : 모든 경우의 수를 다 찾아낼 수 있다!
🚕 모든 경우의 수를 담고 있는 strArchive를 sort로 내림차순 정렬을 하고 -> 🌸 첫 번째 인덱스값을 최종적으로 return한다.

사용한 method
.join() : 배열을 문자열로 변환
.push() : 지정한 배열에 뒤에서부터 추가해줌
.sort() : 원하는 기준으로 정렬

break : 반복문을 끝내고 싶을 때! 완료 시점에 넣어주면 된다!

0개의 댓글