https://programmers.co.kr/learn/courses/30/lessons/17682

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr



Solution

문제 유형 : 문자열, 정규 표현식

 

입력값을 앞에서 부터 하나씩 처리했다.

문자가 숫자면 dart배열에 넣고, 보너스는 딕셔너리에 담겨져 있는 해당 문자를 KEY로 주고, 각각 1 / 2 / 3을 VALUE로 받아 dart 배열에 있는 가장 뒤의 원소에 pow연산을 해줬다. 

 

이 문제를 풀면서 고민했던 것은 옵션 문자 : '#' , '*'를 어떻게 구현할 것 인가와 점수가 10점일 때를 구현하는 것이였다.

문자가 옵션 중에 하나이면 일단 그 문자의 인덱스를 3으로 나누고 몇 번째 점수에서 나온 옵션인가를 알아낸다. 그 후

옵션이 '*'이면 현재 점수와 이전 점수에 *2를 해주고, '#'이면 현재 점수에 *(-1)을 해준다.

 

점수가 10점일 때를 구현하기 위해 i가 0일 때에 dart안에 있는 마지막 원소가 1인지 아닌지 확인했다. 여기서 첫 번째 점수가 0일 때의 예외처리를 못했어서 2개의 테스트 케이스가 통과를 못했었다. 예외처리를 잘하자. 

 

다른 분이 정규표현식을 이용해 푼 풀이를 봤는데 정말 깔끔했다.

이번 기회에 정규표현식도 배워 두어야겠다.

 

^_^


생강강

,