문제 풀이와 반성....

이홍경·2021년 9월 11일
0
post-thumbnail

isIsogram

미뤄 두었던 알고리즘 문제를 풀다가 반성을 했다....

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부터 시작한다.....

바보 같았던 나를 반성한다.....이렇게 날린 시간이 나의 자산이 될 수 있기를....

profile
개발자를 꿈꾸는 자

0개의 댓글