-
[Programmers] 2018 KAKAO BLIND RECRUITMENT: [1차] 다트 게임Problem Solving/Programmers 2021. 2. 5. 20:42
programmers.co.kr/learn/courses/30/lessons/17682
2018년 카카오 공개채용 기출문제이다
"점수|보너스|[옵션]"으로 이루어진 문자열 3세트가 연속적으로 주어졌을 때, 점수의 총 합계를 계산하는 문제
보너스는 (S, D, T)가 존재하고, 각각 점수에 square를 취한다. 옵션은 "*"은 현재, 그리고 이전 점수에 *2를 하며, "#"은 현재 점수에 -1을 취한다.
이렇게 각각의 점수를 구한 뒤, 마지막에 list에 있는 elements를 모두 더해주면 끝
처음에는 스택으로 접근해야 하나 했지만 파이썬의 list로 간단하게 풀 수 있었다
해설에서는 정규식을 사용한 풀이도 추천한다고 했는데, 이후의 기출에서도 왠지 나올 것 같으니 파이썬 정규식에 대해 공부 해 봐야 겠다.
def solution(dartResult): answer = 0 li=list() b=False for i in range(len(dartResult)): if b: b=False continue if(dartResult[i:i+2]=='10'): li.append(int(10)) b=True continue c=dartResult[i] if c>='0' and c<='9': li.append(int(c)) elif c=='D': li[-1]=pow(li[-1],2) elif c=='T': li[-1]=pow(li[-1],3) elif c=='*': li[-1]*=2 if len(li)>1: li[-2]*=2 elif c=='#': li[-1]*=-1 for i in li: answer+=i return answer
'Problem Solving > Programmers' 카테고리의 다른 글
[Programmers] 2018 KAKAO BLIND RECRUITMENT[3차]: n진수 게임 (0) 2021.02.13 [Programmers] 2018 KAKAO BLIND RECRUITMENT[1차] 뉴스 클러스터링 (0) 2021.02.12 Programmers [2018 KAKAO BLIND RECRUITMENT]: [1차] 프렌즈4블록/BFS (0) 2021.01.03 Programmers [2019 카카오 개발자 겨울 인턴십]: 튜플 (0) 2021.01.02 Programmers [2018 KAKAO BLIND RECRUITMENT]: [1차] 비밀지도 (0) 2021.01.02