미뤄 두었던 알고리즘 문제를 풀다가 반성을 했다....
isIsogram 이라는 문제는 단어를 구성하는 알파벳이 모두 다른지에 대하여 불리언 값으로 리턴 하는 문제이다.
(대소문자를 구분하지 않는다.)
예시)
let output = isIsogram('aba');
console.log(output); // false
output = isIsogram('Dermatoglyphics');
console.log(utput); // true
output = isIsogram('moOse');
console.log(output); // false
나의 풀이
function isIsogram(str) {
// TODO: 여기에 코드를 작성합니다.
let trans = str.toLowerCase();
// let comp = trans[0]
// if(str.length === 0) {
// return true
// }
for(let i = 0; i < trans.length - 1; i++) {
for(let j = 1; j < trans.length; j++) {
if(trans[i] === trans[j]) {
return false;
}
}
}
return true;
}
답이 나오지 않아 한참을 씨름 하였는데.....
해답은 정말 가까이에 있었고....정말 바보같은 곳에서 실수를 하였다....
for(let i = 0; i < trans.length - 1; i++) {
for(let j = i + 1; j < trans.length; j++) {
if(trans[i] === trans[j]) {
return false;
// 위의 문제랑 잘 비교해 보면 두번째 for문에서 jd의 초기값을 1로 줬었다....이게 문제였던 것이다...
// 두번째 for문의 j를 1로 두면 i가 증가했을때 j의 초기값은 계속 1부터 시작한다.....
바보 같았던 나를 반성한다.....이렇게 날린 시간이 나의 자산이 될 수 있기를....