[TIL] # 30 알고리즘 |Code Kata - 03 |
중복되지 않은 알파벳으로 이루어진 제일 긴 단어 찾아보자!
오늘 하루
- Code Kata 3번째 문제 시작 !
- westagram 레이아웃 추가
- react state 예습 공부
Code Kata # 03
String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)
예를 들어,
str = "abcabcabc"
return 은 3
=> 'abc' 가 제일 길기 때문
str = "aaaaa"
return 은 1
=> 'a' 가 제일 길기 때문
str = "sttrg"
return 은 3
=> 'trg' 가 제일 길기 때문
My Code
const getLengthOfStr = str => {
// 아래 코드를 작성해주세요.
if(str === ""){
return 0;
}
let arr = [];
let newStr = "";
for(let i in str){
if(newStr.includes(str[i])){
newStr = newStr.slice(newStr.indexOf(str[i]+1));
}
newStr += str[i];
arr.push(newStr.length);
}
return Math.max(...arr);
}
Code Review
먼저 문제를 보면 str인자는 string 형태이다.
우리는 중복되지 않게, 제일 긴 단어 라는 조건을 확인 할 수 있었다.
코드 하나하나 살펴보자
-
새로운 배열을 변수:(arr)선언 / 새로운 문자열 선언 변수:(newStr)
-
새로운 빈 문자열에 기존 문자열 인덱스를 제외하고 자른다
+1 = 인덱스는 0부터 시작하기에
-
만약 새로운 string이 기존 str의 단어를 가지고 있을 경우
새로운 String에 기존 단어가 포함된 index를 제외하고 자른다 indexOf
사용 !!
빈 문자열에 기존 문자열 i를 더 하고 새로운 배열이 배열 끝에 요소를 Push하고, 새로운 문자열 newStr
의 길이를 담아줬다.
-
arr은 이제 빈 배열이 아니다. 새로운 배열 arr에 기존 str인자를 받았고, 제일 긴 단어를 찾기 위해서 Math.Max()
함수를 사용했다.
배열에 요소가 너무 많으면 잘못된 결과를 반환되어서 (...)을 사용했다.
자세한건 아래 링크를 다시 한 번 참고하자!
-
그런데, 2번째 배열이 에러가 ?????
그렇다 2번째는 하필 공백이였다. 맨 위에 함수안에다가 조건문으로
str이 공백이라면 return 0을 반환 해주어 마무리 !
const getLengthOfStr = str => {
// 아래 코드를 작성해주세요.
if(str === ""){
return 0;
}
let arr = [];
let newStr = "";
for(let i in str){
if(newStr.includes(str[i])){
newStr = newStr.slice(newStr.indexOf(str[i]+1));
}
newStr += str[i];
arr.push(newStr.length);
}
return Math.max(...arr);
}
먼저 문제를 보면 str인자는 string 형태이다.
우리는 중복되지 않게, 제일 긴 단어 라는 조건을 확인 할 수 있었다.
코드 하나하나 살펴보자
새로운 배열을 변수:(arr)선언 / 새로운 문자열 선언 변수:(newStr)
새로운 빈 문자열에 기존 문자열 인덱스를 제외하고 자른다
+1 = 인덱스는 0부터 시작하기에
만약 새로운 string이 기존 str의 단어를 가지고 있을 경우
새로운 String에 기존 단어가 포함된 index를 제외하고 자른다 indexOf
사용 !!
빈 문자열에 기존 문자열 i를 더 하고 새로운 배열이 배열 끝에 요소를 Push하고, 새로운 문자열 newStr
의 길이를 담아줬다.
arr은 이제 빈 배열이 아니다. 새로운 배열 arr에 기존 str인자를 받았고, 제일 긴 단어를 찾기 위해서 Math.Max()
함수를 사용했다.
배열에 요소가 너무 많으면 잘못된 결과를 반환되어서 (...)을 사용했다.
자세한건 아래 링크를 다시 한 번 참고하자!
그런데, 2번째 배열이 에러가 ?????
그렇다 2번째는 하필 공백이였다. 맨 위에 함수안에다가 조건문으로
str이 공백이라면 return 0을 반환 해주어 마무리 !
완료 !
이번 알고리즘 코드카타는 정말 어렵기도 했고 시간이 많이 걸렸다..
다시 한 번 복습 해보는 시간을 가져야겠다.
Author And Source
이 문제에 관하여([TIL] # 30 알고리즘 |Code Kata - 03 |), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@damho0514/TIL-30-알고리즘-Code-Kata-03저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)