반응형
https://programmers.co.kr/learn/courses/30/lessons/17682
풀이
보고 한 15분정도는 고민한 문제
처음 접근은 문자열로 편하게 먼저 구현하려다가
그냥 리스트형식으로 바꿨습니다...
10점일때를 어떻게 고려할까 생각하다가
문자열로 특수한 경우(s,d,t,*,#) 인 경우를 먼저 걸러준 뒤 tmp 값으로 숫자를 받고
s,d,t인 경우 해당 값의 제곱등... 넣어저고
* 일 경우 인덱스 값 고려하구, # 일 경우 -1 곱...
def solution(dartResult):
tmp=''
lst_idx=-1
lst=[]
dartResult=list(dartResult)
for i in range(len(dartResult)):
if dartResult[i]=='S':
lst.append(int(tmp))
lst_idx+=1
tmp=''
elif dartResult[i]=='D':
lst.append(int(tmp)**2)
lst_idx+=1
tmp=''
elif dartResult[i]=='T':
lst.append(int(tmp)**3)
lst_idx+=1
tmp=''
elif dartResult[i]=='*':
if lst_idx==0:
lst[lst_idx]*=2
else:
lst[lst_idx-1]*=2
lst[lst_idx]*=2
elif dartResult[i]=='#':
lst[lst_idx]*=-1
else:
tmp+=dartResult[i]
return sum(lst)
한번에 풀어서 기분 좋은 문제!!
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[JAVA/자바 1992 백준] 쿼드트리 (0) | 2021.08.18 |
---|---|
[JAVA SWEA 1210 ] Ladder1 (0) | 2021.08.04 |
[Python/파이썬 프로그래머스] 실패율 (0) | 2021.06.29 |
[파이썬/Python 프로그래머스] 체육복 (0) | 2021.06.28 |
[Python/파이썬 백준 1339] 단어 수학 (0) | 2021.06.02 |