GitHub ID : soohyun-dev
윤수현의 개발 공간
GitHub ID : soohyun-dev
전체 방문자
오늘
어제
  • 분류 전체보기 (918)
    • 성장기록 (49)
      • 성장기록 (3)
      • 우아한테크코스 (16)
      • 프로젝트 (15)
      • TIL (14)
      • 테오의 스프린트 (1)
    • 프로그래밍언어 (88)
      • C언어 (14)
      • HTML\CSS (12)
      • JavaScript (7)
      • React (23)
      • Python (11)
      • JAVA (14)
      • TypeScript (6)
    • 알고리즘 공부 (736)
      • 코드업 - 파이썬 (108)
      • 백준 - 파이썬 (468)
      • 백준 - 자바스크립트 (125)
      • 프로그래머스 - 파이썬 (1)
      • 프로그래머스 - 자바스크립트 (34)
    • 책 리뷰 (9)
      • 프로그래밍 (3)
      • 독서 (6)
    • 전자기기 (1)
    • 일상, 일기 (18)
    • 기술 세미나 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트
  • 백준풀이
  • 코드업
  • 코테
  • 영어
  • 파이썬
  • PYTHON
  • 백준파이썬
  • javascript
  • 영어독해
  • 코드업파이썬
  • 코딩
  • 프로그래머스
  • 백준
  • 프론트엔드
  • 프로그래머스자바스크립트
  • 독해
  • 프로그래머스풀이
  • 프로그래밍언어
  • 코딩테스트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GitHub ID : soohyun-dev

윤수현의 개발 공간

백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 2504 , 괄호의 값[자료구조, 스택]
알고리즘 공부/백준 - 자바스크립트

백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 2504 , 괄호의 값[자료구조, 스택]

2022. 10. 21. 20:51

백준/ Silver 1 문제 , 백준 Node.js 자바스크립트 2504 , 괄호의 값[자료구조, 스택]

 

 

 

✔️Check Point !   ( 해당사항 ✓체크 )

1. 막힘 없이 수월하게 풀린 문제인가?

2. 1시간이내로 풀렸던 문제인가?

3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?

4. 시간을 써도 도무지 풀 수 없는 문제인가?

5. 솔루션을 찾아봤는가?

-------------------------------------------------------------------------------------------

난이도 체감 🧑‍💻
1. 최상
2. 상
3. 중
4. 하


이해도 🙆‍♂️
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함


덧붙일 말 🏷️
eval 메서드 사용

 

 

문제 출처 🏠

https://www.acmicpc.net/problem/2504

 

2504번: 괄호의 값

4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다.  만일

www.acmicpc.net

 

 

 

 

요구사항 📋

  1. ‘()’ 인 괄호열의 값은 2이다.
  2. ‘[]’ 인 괄호열의 값은 3이다.
  3. ‘(X)’ 의 괄호값은 2×값(X) 으로 계산된다.
  4. ‘[X]’ 의 괄호값은 3×값(X) 으로 계산된다.
  5. 올바른 괄호열 X와 Y가 결합된 XY의 괄호값은 값(XY)= 값(X)+값(Y) 로 계산된다.

 

 

 

해결 전략 📝

 

식을 변경하여 자바스크립트 메서드 eval 을 사용해 계산을 했다.

 

요구사항을 잘 처리해야 하는데, 여는 괄호는 +( 식으로 처리하면 된다.

 

잘 처리해야 할 것은 닫는 괄호이다.

 

일단, before 변수를 사용하여 닫는 괄호에 대응되는 여는 괄호가 무엇인지 알려준 다음에

 

앞에서 나온 여는 괄호랑 같은지를 비교해준다.

 

만약, 여는 괄호와 다른 닫힌 괄호가 나온다면 0을 출력시키고 종료시켜버리자.

 

 

 

또한, 요구사항에 따라 만들고 있는 식의 오른쪽 끝자리가 여는 괄호로 끝났다면 2) 혹은 3) 를 추가해주고

 

만약, 다른 값으로 끝났다면 )*2  혹은 )*3 을 추가해준다.

 

(참고로 입력된 값이 ) 는 2 , ] 는 3이다.)

 

 

이렇게 해서 만들어진 식을 eval 메서드를 사용해서 돌리면 계산한 값이 나오게 된다.

 

 

 

 

 

반례 ⚠️

 

(()[[]])([])

 

 

 

 

str 출력 값

 

정답 : 28

 

 

 

[[[]][]]

 

 

 

str 출력 값

 

정답 : 36

 

 

정답 💯

 

 

const { exit } = require("process");

const input = require("fs").readFileSync("/dev/stdin").toString().trim();

function solution(bracket) {
  let [cal, str, before, num] = [[], "", "", 0];
  bracket.split("").map((v) => {
    if (v === "(" || v === "[") {
      str += "+(";
      cal.push(v);
    } else {
      if (v === ")") [before, num] = ["(", 2];
      else if (v === "]") [before, num] = ["[", 3];
      if (cal[cal.length - 1] === before) cal.pop();
      else {
        console.log(0);
        exit(0);
      }
      if (str[str.length - 1] === "(") str += `${num})`;
      else str += `)*${num}`;
    }
  });
  if (cal.length !== 0) return 0;
  return eval(str);
}

console.log(solution(input));
반응형

'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글

백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 10546 , 배부른 마라토너  (0) 2022.10.22
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 2800 , 괄호 제거 [자료구조, 스택]  (0) 2022.10.21
백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 4358 , 생태학 [자료구조, 스택]  (0) 2022.10.21
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 5430 , AC [자료구조, 스택]  (0) 2022.10.20
백준/ Gold 4 문제 , 백준 Node.js 자바스크립트 9935, 문자열 폭발 [자료구조, 스택]  (0) 2022.10.19
    '알고리즘 공부/백준 - 자바스크립트' 카테고리의 다른 글
    • 백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 10546 , 배부른 마라토너
    • 백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 2800 , 괄호 제거 [자료구조, 스택]
    • 백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 4358 , 생태학 [자료구조, 스택]
    • 백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 5430 , AC [자료구조, 스택]
    GitHub ID : soohyun-dev
    GitHub ID : soohyun-dev
    환영합니다!😊 이곳은 저의 개발에 관한 내용들을 정리하는 공간입니다. 알고리즘 풀이에도 관심이 많아요. 좋은 하루 되세요~! github : soohyun_dev

    티스토리툴바