Algorithm : Programmers - 다트 게임
👉 문제
🤔생각해보기
- 입력받은 파라미터를 반복문을 돌린다.
- 반복문에서 숫자를 변수에 넣는다
- 다음 반복시에 나타나는 경우마다 변수를 계산한다.
- 계산된 변수는 배열로 append 하고 초기화한다.
- 옵션에서의 계산을 배열로 처리한다.
👉 해결
def solution(dartResult):
num = ''
result= []
for i in dartResult:
# 숫자 다음엔 항상 문자가 나오는 것을 활용 !
if i.isnumeric(): # 숫자면 num 에 담아라
num += i
elif i == "S": # i 가 S 면,
num = int(num)**1 # 숫자였을때 담아둔 num을 1승 함
result.append(num) # 1승한 num 을 배열에 넣음
num = '' # 다음 숫자를 위해 초기화
elif i == "D":
num = int(num)**2
result.append(num)
num = ''
elif i == "T":
num = int(num)**3
result.append(num)
num = ''
elif i == "*" :
# 추출해낸 값을 가진 배열의 index를 활용
if len(result) > 1:
result[-1] = result[-1] * 2
result[-2] = result[-2] * 2
else:
result[-1] = result[-1] * 2
elif i == "#":
result[-1] = result[-1] * -1
print(result)
return sum(result)
1차 시도 후, 참고할만한 예제를 찾고 나니, 새삼 너무 배열만을 고집해왔던것 같았다. 다양한 문제를 만나고, 더욱 고심하면서 문제를 풀어봐야겠다.
Author And Source
이 문제에 관하여(Algorithm : Programmers - 다트 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coil/Algorithm-Programmers-다트-게임저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)