https://programmers.co.kr/learn/courses/30/lessons/17682
Solution
문제 유형 : 문자열, 정규 표현식
입력값을 앞에서 부터 하나씩 처리했다.
문자가 숫자면 dart배열에 넣고, 보너스는 딕셔너리에 담겨져 있는 해당 문자를 KEY로 주고, 각각 1 / 2 / 3을 VALUE로 받아 dart 배열에 있는 가장 뒤의 원소에 pow연산을 해줬다.
이 문제를 풀면서 고민했던 것은 옵션 문자 : '#' , '*'를 어떻게 구현할 것 인가와 점수가 10점일 때를 구현하는 것이였다.
문자가 옵션 중에 하나이면 일단 그 문자의 인덱스를 3으로 나누고 몇 번째 점수에서 나온 옵션인가를 알아낸다. 그 후
옵션이 '*'이면 현재 점수와 이전 점수에 *2를 해주고, '#'이면 현재 점수에 *(-1)을 해준다.
점수가 10점일 때를 구현하기 위해 i가 0일 때에 dart안에 있는 마지막 원소가 1인지 아닌지 확인했다. 여기서 첫 번째 점수가 0일 때의 예외처리를 못했어서 2개의 테스트 케이스가 통과를 못했었다. 예외처리를 잘하자.
다른 분이 정규표현식을 이용해 푼 풀이를 봤는데 정말 깔끔했다.
이번 기회에 정규표현식도 배워 두어야겠다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 셔틀 버스 / Python / 2018 KAKAO BLIND RECRUITMENT (0) | 2020.04.15 |
---|---|
[프로그래머스] 캐시(LRU) / Python / 2018 KAKAO BLIND RECRUITMENT (0) | 2020.04.15 |
[프로그래머스] 비밀지도 / Python / 2018 KAKAO BLIND RECRUITMENT (0) | 2020.04.14 |
[프로그래머스] 소수 찾기 / Python (0) | 2020.04.14 |
[프로그래머스] H-Index / Python (0) | 2020.04.11 |
,