코딩테스트 공부
짝지어 제거하기-프로그래머스 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("")이냐의 차이이다 근데, ''은 시간초과 ""은 알맞게나왔다. 이건 음.. 검색을 더해봐서 부족한 부분을 찾아봐야겠다.