[프로그래머스][level 1] 다트 게임 (카카오)

 

문제


필요 지식

  • stack 
    • 예전에 문자열 연산자 구현할 때 stack쓴게 기억나서 적용해봄.
    • 숫자를 만나면 임시 저장소에 저장했다가 연산자 만나면 스택에 저장
    • 이 문제의 경우, 연산자는 아니고, SDT만나면 스택에 저장되는 구조

해결 방법

크게 세 부분으로 나눌 수 있다.
[숫자 / SDT / *#]

숫자를 만나면 임시저장소에 저장한 후, 
SDT를 만날 때 S는1제곱, D는2제곱, T는3제곱 해서 stack에 넣는다.
그 후, 만약 */#을 만난경우 stack에 있는 값을 꺼내서 다시 연산 시킨 후 다시 넣는다.

주의할 점

  • * 를 만났을 때, stack에 1개의 요소만 있는 경우도 생각해야 한다.

    코드

    반성할 점

    • 굳이 스택을 쓸 필요가 없었다는 점
    • 스택이용 안하고, 그냥 (숫자 배열, 연산자 배열) 두개 사용하면 코드 길이도 작아지고, 시간도 빠를 듯함. 다음에 해보자!

    댓글 쓰기

    0 댓글