소스 코드
def solution(dartResult): # 점수 score = [0,0,0] # 점수 인덱스 idx = 0 # 방문 확인 check = [0 for _ in range(len(dartResult))] # 기본 점수 확인 for q in range(len(dartResult)): if check[q] == 0: # '0' <= dartResult[q] <= '9' 이면 if 48 <= ord(dartResult[q]) <= 57: check[q] = 1 # 10인 경우 if 48 <= ord(dartResult[q+1]) <= 57: check[q+1] = 1 if dartResult[q+2] == 'S': score[idx] = 10 elif dartResult[q+2] == 'D': score[idx] = 100 else: score[idx] = 1000 # 10이 아닌 경우 else: if dartResult[q + 1] == 'S': score[idx] = int(dartResult[q]) elif dartResult[q + 1] == 'D': score[idx] = int(dartResult[q]) ** 2 else: score[idx] = int(dartResult[q]) ** 3 idx += 1 # 보너스 계산하기 for w in range(len(dartResult)): if dartResult[w] == '*': if w == 2: score[0] *= 2 elif w == 4 or w == 5: score[0] *= 2 score[1] *= 2 else: score[1] *= 2 score[2] *= 2 elif dartResult[w] == '#': if w == 2: score[0] *= -1 elif w == 4 or w == 5: score[1] *= -1 else: score[2] *= -1 answer = sum(score) return answer
해결 방법
1. 문제에 나와있는 조건을 적용하고, 순서대로 해결
느낀 점
조금 더 깔끔한 코드 or 깔끔한 방식으로 문제를 해결해보고 싶다...
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
광고
광고
'코딩 문제해결 > 문제풀이.프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩] 직업군 추천하기 - PYTHON (0) | 2021.08.23 |
---|---|
[프로그래머스 코딩] 비밀 지도 - PYTHON (0) | 2021.08.22 |
[프로그래머스 코딩] 튜플 - PYTHON (0) | 2021.08.20 |
[프로그래머스 코딩] 신규 아이디 추천 - PYTHON (0) | 2021.07.28 |
[프로그래머스 코딩] 키패드 누르기 - PYTHON (0) | 2021.07.28 |