import math
def solution(dartResult):
result = []
answer = 0
if dartResult[1] == "0":
result.append("10") # "10"추가
dartResult = dartResult.strip("10") # 맨 앞 10 제거 "10D10S10T*"->"D10S10T*"
result.append(dartResult[0]) # 결과1의 SDT 추가
dartResult = dartResult.strip(dartResult[0]) # 결과1의 SDT 제거
else:
result.append(dartResult[0]) # 결과1의 점수 추가
dartResult = dartResult.strip(dartResult[0]) # 결과1의 점수 제거
result.append(dartResult[0]) # 결과1의 SDT 추가
lastSDT = ""
if dartResult[0] == dartResult[len(dartResult) - 1]: # 만약 결과1의 SDT와 결과3의 SDT가 같다면
lastSDT = dartResult[len(dartResult) - 1] # lastSDT에 결과3의 SDT를 저장
dartResult = dartResult.strip(dartResult[0]) # 결과1의 SDT제거 (이 때 결과3것도 삭제될 수 있음)
if dartResult[len((dartResult)) - 1].isdigit(): # 마지막 글자가 숫자라면
dartResult = dartResult + lastSDT # lastSDT를 추가
if dartResult[0].isdigit(): # 결과1에 *#이 없다면
result.append("!") # !를 추가
else: # 결과1에 *#이 있다면
result.append(dartResult[0]) # *#을 추가
dartResult = dartResult.strip((dartResult[0])) # 결과1의 *# 제거
if dartResult[1] == "0":
result.append("10") # "10"추가
dartResult = dartResult.strip("10") # 맨 앞 10 제거 "10D10S10T*"->"D10S10T*"
result.append(dartResult[0]) # 결과2의 SDT 추가
dartResult = dartResult.strip(dartResult[0]) # 결과2의 SDT 제거
else:
result.append(dartResult[0]) # 결과2의 점수 추가
dartResult = dartResult.strip(dartResult[0]) # 결과2의 점수 제거
result.append(dartResult[0]) # 결과2의 SDT 추가
lastSDT = ""
if dartResult[0] == dartResult[len(dartResult) - 1]: # 만약 결과2의 SDT와 결과3의 SDT가 같다면
lastSDT = dartResult[len(dartResult) - 1] # lastSDT에 결과3의 SDT를 저장
dartResult = dartResult.strip(dartResult[0]) # 결과2의 SDT제거 (이 때 결과3것도 삭제될 수 있음)
if dartResult[len((dartResult)) - 1].isdigit(): # 마지막 글자가 숫자라면
dartResult = dartResult + lastSDT # lastSDT를 추가
if dartResult[0].isdigit(): # 결과2에 *#이 없다면
result.append("!") # !를 추가
else: # 결과2에 *#이 있다면
result.append(dartResult[0]) # *#을 추가
dartResult = dartResult.strip((dartResult[0])) # 결과1의 *# 제거
if dartResult[1] == "0":
result.append("10") # "10"추가
dartResult = dartResult.strip("10") # 맨 앞 10 제거 "10D10S10T*"->"D10S10T*"
result.append(dartResult[0]) # 결과3의 SDT 추가
else:
result.append(dartResult[0]) # 결과3의 점수 추가
dartResult = dartResult.strip(dartResult[0]) # 결과3의 점수 제거
result.append(dartResult[0]) # 결과3의 SDT 추가
if len(dartResult) == 1:
dartResult = dartResult + "!"
result.append(dartResult[1])
firstScore = 0
def firstScoreDef(result):
bonus = 0
if result[1] == "S":
bonus = 1
elif result[1] == "D":
bonus = 2
elif result[1] == "T":
bonus = 3
award = 0
if result[2] == "*": # 스타상
award = 2
if result[5] == "*":
award = 2 * 2
elif result[2] == "#": # 아차상
award = -1
if result[5] == "*":
award = -1 * 2
elif result[2] == "!":
award = 1
if result[5] == "*":
award = 1 * 2
return math.pow(int(result[0]), bonus) * award
firstScore = firstScoreDef(result)
def secondScoreDef(result):
bonus = 0
if result[4] == "S":
bonus = 1
elif result[4] == "D":
bonus = 2
elif result[4] == "T":
bonus = 3
award = 0
if result[5] == "*": # 스타상
award = 2
if result[8] == "*":
award = 2 * 2
elif result[5] == "#": # 아차상
award = -1
if result[8] == "*":
award = -1 * 2
elif result[5] == "!":
award = 1
if result[8] == "*":
award = 1 * 2
return math.pow(int(result[3]), bonus) * award
secondScore = secondScoreDef(result)
def thirdScoreDef(result):
bonus = 0
if result[7] == "S":
bonus = 1
elif result[7] == "D":
bonus = 2
elif result[7] == "T":
bonus = 3
award = 0
if result[8] == "*": # 스타상
award = 2
elif result[8] == "#": # 아차상
award = -1
elif result[8] == "!":
award = 1
return math.pow(int(result[6]), bonus) * award
thirdScore = thirdScoreDef(result)
answer = firstScore + secondScore + thirdScore
return int(answer)
이렇게 하드 코딩 하면 혼나나 ?
코린이라 있는 상식 없는 상식 다 써가면서 풀었는데
테스트 몇개 통과가 안되서 제출이 안돼.......................................................
테스트 케이스 내가 추가한거까지 9개는 통과 시켰는데 이 정도면 제출 가능하게 해줘야하는거 아니야? 1점만 주더래도
존나 못하긴 했어도 제출은 하고 싶은데
장난아니네;;
제출되었는데 틀려서 빠꾸 먹은 거 아님?
18 ~ 22 틀리다고 나오네
아 어디 틀렸나..?? 다시 해봄...ㅠㅠ
그리고 넘 하드 코딩임.. 더 쉬운 문제부터 풀어봐
쉬운거 다 풀고 올라온거얌
파이썬을 어제부터 배운 수준임 .. 초보라서
while문하고 문자열 내장함수 잘 써봐
틀린부분 찾음! 조언 땡큐
풀어봤는데 정규표현식이 낫다. 16줄이면 가능
문제가 뭐길래 - dc App
문제는 카카오 2018년도 1차 코테 다트 게임 이래
https://programmers.co.kr/learn/courses/30/lessons/17682
리팩토링 씹련아