Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- datastructure
- 혼자 공부하는 C언어
- JSON
- Stack
- C 언어 코딩 도장
- stream
- Selection Sorting
- 알기쉬운 알고리즘
- Serialization
- 윤성우 열혈자료구조
- C programming
- s
- coding test
- list 컬렉션
- 이것이 자바다
- buffer
- R
- 윤성우의 열혈 자료구조
- Algorithm
- insertion sort
- 메모리구조
- 이스케이프 문자
- Graph
Archives
- Today
- Total
Engineering Note
[KAKAO] 다트게임 본문
문제 : https://programmers.co.kr/learn/courses/30/lessons/17682
해설
다트게임
-> 다트판에 다트를 세 차례 던져 그 점수 합계로 실력을 겨루는 게임
다트 게임 점수 계산 로직
1. 총 세번의 라운드로 진행된다.
2. 점수는 0~10점 중 하나다.
3. 보너스: 점수마다 하나씩 존재하는 보너스 계산이 있다.
S: 점수의 1제곱
D: 점수의 2제곱
T: 점수의 3제곱
4. 옵션: 점수마다 존재하지 않거나 존재한다면 하나씩만 존재하는 옵션
스타상(*): 해당 점수, 바로 직전 점수 각 2배
: 해당 라운드가 1라운드일 경우 직전라운드가 없으므로 해당 라운드 즉, 1라운드만 점수 2배
: 스타상은 중첩될 수 있다. ex) 1S*2D*3T 로 점수 배점이 매겨졌을 때 1라운드는 2라운드에서 받은 스타상과 중첩
아차상(#): 해당 점수 마이너스
: 스타상과 아차상이 중첩될 수 도 있다.
입력 형식
"점수|보너스|[옵션]"으로 이루어진 문자열 3세트
es) 1S2D*3T는 1S // 2D* // 3T 로 이루어진 문자열 3세트이다. 1세트 1S는 점수 1점에 보너스 S이다. 2세트는 점수 2점에 보너스 D 옵션 *으로 이루어져 있따. 3세트는 점수 3점에 보너스 T로 이루어져 있다.
이를 계산하면 37점이다. 계산방식은 아래의 그림 참조하면 된다.
코드
def solution(dartResult):
answer = 0
scores = [None]*3
game_round = 0
BONUS = ["S","D","T"]
OPTION = ["*","#"]
for dart in dartResult:
if dart in "0123456789":
if scores[game_round] == None:
scores[game_round] = int(dart)
else:
scores[game_round] = scores[game_round]*10 + int(dart)
if dart in BONUS:
if dart == BONUS[1]:
scores[game_round] = scores[game_round]**2
elif dart == BONUS[2]:
scores[game_round] = scores[game_round]**3
game_round += 1
if dart in OPTION:
game_round -= 1
if game_round == 0 and dart == OPTION[0]:
scores[game_round] = scores[game_round]*2
elif game_round != 0 and dart == OPTION[0]:
scores[game_round] = scores[game_round]*2
scores[game_round-1] = scores[game_round-1]*2
if dart == OPTION[1]:
scores[game_round] = -scores[game_round]
game_round += 1
return sum(scores)
'Problem Solving > KAKAO' 카테고리의 다른 글
[KAKAO] 크레인 인형뽑기 게임 (0) | 2022.01.24 |
---|
Comments