coding test - python/Programmers
Programmers / *[1차] 다트게임 / Python
sillon
2022. 4. 8. 23:28
728x90
반응형
*문제 출처는 프로그래머스에 있습니다.
문제 제목: [1차] 다트게임
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17682
나의 풀이(미완성)
def solution(dart):
arr=[]
tmp = []
sum = 0
for x in dart: #문자열 분리
arr.append(x)
for i in range(len(arr)):
if arr[i].isnumeric():
arr[i] = int(arr[i])
for i in range(1,len(arr)): #10 처리
if arr[i-1] == 1 and arr[i] == 0:
arr[i-1] = 10
arr.pop(i)
for i in range(1,len(arr)):#S,D,T
if arr[i] == 'S':
tmp.append(arr[i-1])
elif arr[i] == 'D':
tmp.append(arr[i-1]*arr[i-1])
elif arr[i] == 'T':
tmp.append(arr[i-1]*arr[i-1]*arr[i-1])
return tmp
모범답안
def solution(dartResult):
n = ''
score = []
for i in dartResult:
if i.isnumeric():
n += i
elif i == 'S':
n = int(n)**1
score.append(n)
n = ''
elif i == 'D':
n = int(n)**2
score.append(n)
n = ''
elif i == 'T':
n = int(n)**3
score.append(n)
n = ''
elif i == '*':
if len(score) > 1:
score[-2] = score[-2] * 2
score[-1] = score[-1] * 2
else:
score[-1] = score[-1] * 2
elif i == '#':
score[-1] = score[-1] * -1
return sum(score)
728x90
반응형