[ 입력 ]
- 첫째 줄에 화학식 입력
- 화학식은 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 가 떠서 다른 블로그를 참고해 풀었더니 동일하게 해결된듯한 느낌이다..