[CODEKATA] #01. 그래, 풀어보자!

MOONJUNG·2022년 9월 11일
0

CODEKATA

목록 보기
1/1
post-thumbnail

❓문제

s가 유효한 표현인지 아닌지 true/false로 반환해주세요. 종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다. 한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다. 괄호 순서가 맞아야 한다.

s = "()"
return true

s = "()[]{}"
return true

s = "(]"
return false

s = "([)]"
return false

s = "{[]}"
return true

❗ 나의 풀이

function isValid(s) {
  let arr = s.split('');
  for (let i = 0; i < arr.length; i++) {
    if(arr.length % 2 === 1){
      return false;
    }else{
      if((arr[i]==='(' && arr[i+1] ===')')||
         (arr[i]==='{' && arr[i+1] ==='}')||
         (arr[i]==='[' && arr[i+1] ===']')){
          arr.slice(i,1);
           i--;
        return true;
      }
    }    
  }
  if(arr.length === 0){
      return true;
    }else{
      return false;
    }
} 
  1. string으로 받은 인자를 배열로 가져온다.
  2. 괄호는 무조건 쌍으로 존재해야 하므로 배열의 길이가 홀수이면 false를 리턴한다.
  3. 열려있는 괄호가 나오면 바로 닫히는 괄호가 나오는 경우 참이므로 배열에서 잘라낸다.
  4. 잘라내다가 배열의 길이가 0이면 true를 아닐 경우 false를 리턴한다.

✍느낀점

replit test를 통과한 적은 처음이다. 이게 효율적인 코드이든 아니든 초록색 불이 들어온 건 역시 나에게 아주 큰 성취감을 준다. 이렇게 하나씩 실력이 쌓이는 거겠지?라고 위안을 삼아본다.

profile
뜨거운 열정으로 꿈을 실현하는 프론트엔드 개발자 장문정

0개의 댓글