Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 프록시
- 프록시서버
- 호스팅
- Proxy
- 세마포어란?
- 다익스트라
- floyd-warshall
- 세마포어와 뮤텍스의 차이
- 동기화
- 플로이드 와샬
- 웹 호스팅
- Proxy Server
- 삼성 청년 SW 아카데미
- 싸피 면접 후기
- 플로이드 워셜
- 호스팅이란?
- 세마포어
- 서버 호스팅
- Synchronization
- 뮤텍스
- 세마포어와 뮤텍스
- SSAFY
- 뮤텍스란?
- 싸피 합격
- 최단 경로
- Dijkstra Algorithm
- 클라우드 서버
- 다익스트라 알고리즘
- 싸피
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[프로그래머스][2020 KAKAO BLIND RECRUITMENT][자바스크립트] 괄호 변환 본문
알고리즘/프로그래머스(Programmers)
[프로그래머스][2020 KAKAO BLIND RECRUITMENT][자바스크립트] 괄호 변환
NineOne 2021. 5. 4. 20:08programmers.co.kr/learn/courses/30/lessons/60058?language=javascript
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를
programmers.co.kr
function balanceBracket(str) {
let left = 0;
let right = 0;
let i = 0;
for (; i < str.length; i++) {
let bracket = str.charAt(i);
if (bracket == "(") left++;
else right++;
if (left == right) break;
}
return i+1;
}
function isCheckBracket(str) {
let stack = [];
for (let i = 0; i < str.length; i++) {
if (str.charAt(i) == "(") stack.push("(");
else {
if (stack.length == 0) return false;
stack.pop();
}
}
return true;
}
function changeBracket(str) {
let temp = "";
for (let i = 0; i<str.length; i++) {
if (str.charAt(i) == "(") temp += ")";
else temp += "(";
}
return temp;
}
function dfs(cnt, u, v) {
if (u.length == 0) return '';
let length = balanceBracket(u);
v = u.substr(length, u.length);
u = u.substr(0, length);
if (isCheckBracket(u)) {
return u + dfs(cnt + 1, v, "");
} else {
let s = "(";
s += dfs(cnt + 1, v, "") + ")";
u = u.substr(1);
u = u.substr(0, u.length-1);
s += changeBracket(u);
return s;
}
}
function solution(p) {
return dfs(0, p, "");
}
정리
- 과정을 잘 읽고 따라 하면 문제없이 풀 수 있다!
- 하지만!!!! "4-4. u의 첫 번째와 마지막 문자를 제거하고, 나머지 문자열의 괄호 방향을 뒤집어서 뒤에 붙입니다." 이 문장에서 reverse 하는 게 아니라 '(' 괄호는 ')'으로 바꾸는 말이라는 걸 주의하자.
'알고리즘 > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스][2018 KAKAO BLIND RECRUITMENT][자바스크립트] 프렌즈4블록 (0) | 2021.05.06 |
---|---|
[프로그래머스][2019 KAKAO BLIND RECRUITMENT][자바스크립트] 실패율 (0) | 2021.05.05 |
[프로그래머스][2020 KAKAO BLIND RECRUITMENT][자바스크립트] 문자열 압축 (0) | 2021.05.03 |
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바스크립트] 순위 검색 (0) | 2021.05.02 |
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바스크립트] 합승 택시 요금 (0) | 2021.05.01 |
Comments