일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 접근성
- classList
- ROUTER 버전6
- windowwidth
- classList toggle
- react-router
- classList remove
- 2020
- 내배위의고양이
- 안짤렸다
- 냥빨이다가온다
- chart responsive
- 커스텀훅
- react
- 간식금지다!
- 를
- 대표님물리기없기
- 클래스 토글
- 리엑트할수있는퍼블리셔라규
- 언젠간가겠지
- className
- 퍼블리싱
- resize
- chart.js
- 포트폴리오
- react-router-dom
- classList add
- 방심은금물
Archives
- Today
- Total
틈
[2021-05-03]괄호 닫힘 확인 예제 본문
Question :
괄호가 완전히 닫혔을 때 true를 반환하고, 닫히지 않으면 false를 반환합니다.
")(" 이런식으로 뒤바뀐 괄호도 false처리합니다.
Answer :
function validParentheses(parens){
var arr = parens.map(x => x == ")" ? -1 : 1);
var count = 0;
var result;
for(var i=0;i < arr.length;i++){
count += arr[i];
if(count < 0){
result = false;
}
}
result = (count === 0) ? true : false;
return result;
}
anotherAnswer 1 :
function validParentheses(parens){
return [...parens].reduce((a,c) => (a+c).replace("()",'') ) == ""?true:false;
}
anotherAnswer2 :
function validParentheses(parens){
var n = 0;
for (var i = 0; i < parens.length; i++) {
if (parens[i] == '(') n++;
if (parens[i] == ')') n--;
if (n < 0) return false;
}
return n == 0;
}
Review :
최근에 알고리즘 예제를 풀면서 가장 고민하는 것은 '어떻게 하면 간결하게 코드를 짤까?' 하는 것입니다. 최근 실무작업에서 삼항연산자를 많이 사용하는 것도 같은 이유입니다. 답을 내는 속도도 중요하지만, 조금더 생각하고 답을 도출해야 다음에 더 좋은 결과물을 낼 수 있다고 생각하기 때문입니다.
객체로 푸는 문제가 많다보니 .map()이나 .reduce() 같은 es6 문법이 익숙하지 않아 사용법을 계속 검색하면서 작업하고 있습니다.
& 이번 작업에서 배운 점 :
- .map()의 사용법
- string은 객체이다.
- return 값을 연산자로 풀어도 괜찮다.
'code > Daily Side Project' 카테고리의 다른 글
[2021-05-05] 여러 자릿수의 숫자를 한자리로 만들기 (0) | 2021.05.05 |
---|---|
[2021-05-04] 두 객체의 value 비교 (0) | 2021.05.04 |
[2021-05-03] 짝수/홀수 분별하기 (0) | 2021.04.30 |
[2021-04-29] 빠진 알파벳 찾기 (0) | 2021.04.29 |
[2021-04-29] 숫자로 상태 추출 (0) | 2021.04.29 |
Comments