[C++] 백준 2257번 풀이 (화학식량)

정민경·2023년 1월 26일
0

baekjoon

목록 보기
24/57
post-thumbnail

- 문제 (2257번) : 화학식량

  • 입력받은 화학식의 화학식량을 출력하는 문제

- 입력 및 출력

[ 입력 ]

  • 첫째 줄에 화학식 입력
    • 화학식은 H, C, O, (, ), 2 ~ 9 만으로 이루어진 문자열
    • 화학식의 길이 < 100

[ 출력 ]

  • 첫째 줄에 화학식량 출력
    • 화학식량 < 10,000

- 문제 풀이

  • stack 사용해 해결할 수 있는 문제이다.

    닫는 괄호 ( ")" ) 를 제외한 모든 문자를 string의 형태로 통일시켜 string type의 stack에 넣는다.
    이 때 숫자는 이전 원자의 질량과 곱한 후 stack에 넣는다.

    • [ "(", "H", "C", "O" ] 를 stack 에 넣는 코드

    • [ 입력이 숫자일 때 ] stack에 넣는 코드
  • 원자만으로 주어졌을 때 즉, 여는 괄호가 나오기 전에 입력받은 원자들은 값 계산 없이 일단 먼저 stack 에 넣는다.

  • 분자로 주어졌을 때는 분자의 질량을 구한 후의 값을 string type으로 바꿔 stack에 넣는다.

  • 그 후 마무리로 stack의 모든 값들을 수로 변환하여 한번에 더한 값을 출력하면 된다.

  • 혼자서 풀었을 때 계속해서 segmentation fault 가 떠서 다른 블로그를 참고해 풀었더니 동일하게 해결된듯한 느낌이다..


- 최종 코드


- 참고 자료

0개의 댓글