Bleeding edge

짝지어 제거하기-프로그래머스 js 본문

코딩테스트 공부

짝지어 제거하기-프로그래머스 js

codevil 2022. 3. 28. 02:13

https://programmers.co.kr/learn/courses/30/lessons/12973

 

코딩테스트 연습 - 짝지어 제거하기

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙

programmers.co.kr

function solution(s){
    let arr = []
    for(i=0;i<s.length;i++){
    arr.push(s[i])
        if(arr[arr.length-1]===arr[arr.length-2]){
        arr.pop();
        arr.pop();
        }
}
  if(arr.length===0) return 1
    
    return 0
}

 

1회차 풀이때, 효율성에서 1개가 문제가 있었다. 그래서 뭘개선해야할지 몰라서 검색해보니 마지막 arr.length쪽을, array로 접근할게 아니라 join으로 string 화시킨다음에 풀면 해결됬다. 근데 재밌는 것은

 

function solution(s){
    let arr = []
    for(i=0;i<s.length;i++){
    arr.push(s[i])
        if(arr[arr.length-1]===arr[arr.length-2]){
        arr.pop();
        arr.pop();
        }
}
    return arr.join('')===''? 1 : 0
}
function solution(s){
    let arr = []
    for(i=0;i<s.length;i++){
    arr.push(s[i])
        if(arr[arr.length-1]===arr[arr.length-2]){
        arr.pop();
        arr.pop();
        }
}
    return arr.join("")==='' ? 1 : 0
}

위에 것과 아랫것의 차이는 arr.join('')이냐 아니면 arr.join("")이냐의 차이이다 근데, ''은 시간초과 ""은 알맞게나왔다. 이건 음.. 검색을 더해봐서 부족한 부분을 찾아봐야겠다.

'코딩테스트 공부' 카테고리의 다른 글

eval()  (0) 2022.03.30
최대공약수, 최소공배수  (0) 2022.03.28
[짤막]charCodeAt  (0) 2022.03.23
순열(permutation)과 조합(combination)  (0) 2022.03.22
소수구하기  (0) 2022.03.22