[Javascript] 프로그래머스 Level 2 _ 올바른 괄호
👇🏻
👇🏻
시행착오
( + 코드를 작성하면서든 생각들.)
1.
정확성 테스트는 통과되지만
효율성 테스트는 통과되지못하는 코드이다 ㅠㅠ
function solution(s){
const x = s.length/2;
if(s[0] == ")"){
return false;
} else {
for(let i = 0; i < x; i++){
s = s.split("()").join('');
}
return (s == "")? true : false;
}
}
function solution(s){
const x = s.length/2;
const regExp = /\(\)|\(|\)/g;
if(s[0] == ")"){
return false;
} else {
for(let i = 0; i < x; i++) {
if(s!=""){
s = s.match(regExp)
.filter(el => el != "()")
.join('');
}
}
return (s == "")? true : false;
}
}
2.
이렇게 하면 효율성 테스트에서
하나는 맞고 하나는 시간 초과가 뜬다.
(하지만 앞, 뒤의 조건으로도 거를 수 있는 x%2 != 0 이라는 조건을 제거하면 통과는 된다.)
function solution(s){
const x = s.length;
if(s[0] == ")" || x%2 != 0 || s[x-1] == "("){
return false;
} else {
let cnt = 0;
s = s.split('');
for(let i = 0; i < s.length; i++){
if(s[i] == "("){
cnt++;
} else if(cnt > 0){
cnt--;
}
}
return (cnt != 0)? false : true;
}
}
✏️ 제출 코드
- solution 01
애초에 잘 닫힌 괄호 ()는 걸러서 반복문에서 소요되는 시간을 줄였더니
그럼 잘 통과가 된다!
- solution 02
split()과 join() 대신 replace()로 잘 닫힌 괄호를 제거했다.
시간이 줄어들 줄 알았는데 딱히 그것도 아니였다 ㅎㅎㅎㅎㅎㅎ
⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️
*** 혹시라도 잘못된 정보가 있다면 언제든지 알려주시면 감사하겠습니다 ! ***
'Programmers > Level 2' 카테고리의 다른 글
[Javascript] 프로그래머스 : 다음 큰 수 (0) | 2021.08.23 |
---|---|
[Javascript] 프로그래머스 : 기능 개발 (0) | 2021.08.22 |
[Javascript] 프로그래머스 : 행렬의 곱셈 (0) | 2021.08.20 |
[Javascript] 프로그래머스 : 프린터 (0) | 2021.08.19 |
[Javascript] 프로그래머스 : 최솟값 만들기 (0) | 2021.08.18 |