Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 두큐합같게만들기
- javascript
- 다익스트라
- 알고리즘
- 프로그래머스
- DP
- 최단경로
- 프림알고리즘
- 파괴되지않은건물
- 위상정렬
- RGB거리2
- DFS
- 그래프탐색
- 징검다리건너기
- 도넛과막대그래프
- 자물쇠와열쇠
- 섬연결하기
- 이모티콘할인행사
- 큐
- 트리의지름
- BFS
- 17404
- 사이클게임
- 벽부수고이동하기
- [1차]캐시
- 파이썬
- 거리두기확인하기
- 구현
- 최소스패닝트리
- 백준
Archives
- Today
- Total
블로그 이름 뭐로 하지
[알고리즘] 프로그래머스 - [1차] 다트 게임 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/17682
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
다트게임이 3회밖에 없다는것을 캐치했으면 금방 풀렸을텐데, 무한대로 가능하다고 생각하고 푸느라 *의 중첩을 어떤식으로 저장하고 관리해야할지에 대해 고민하다가 시간을 많이 뺏겼다.
보너스와 옵션 그리고 숫자를 각 횟수를 인덱스로 해서 배열에 담아서 계산했다.
10을 처리하는 부분에 있어서 매끄럽지 못했는데, 다른사람 풀이에서 신박한!! 풀이를 발견했다.
def solution(dartResult):
point = []
answer = []
dartResult = dartResult.replace('10','k')
point = ['10' if i == 'k' else i for i in dartResult]
print(point)
i = -1
sdt = ['S', 'D', 'T']
for j in point:
if j in sdt :
answer[i] = answer[i] ** (sdt.index(j)+1)
elif j == '*':
answer[i] = answer[i] * 2
if i != 0 :
answer[i - 1] = answer[i - 1] * 2
elif j == '#':
answer[i] = answer[i] * (-1)
else:
answer.append(int(j))
i += 1
return sum(answer)
4번째 5번째 줄,... 완전 신박하다
정답 코드
def solution(dartResult):
answer = 0
arr = list(dartResult)
bonus = []
option = ['','','']
number = []
for i in range(len(arr)):
a = arr[i]
if a =='x':
continue
if a == "S" or a=="D" or a=="T":
bonus.append(a)
elif a == "*" or a == "#":
option[len(number)-1] = a
else:
if arr[i+1] == '0':
a = 10
arr[i+1] = 'x'
number.append(int(a))
for i in range(3):
num = number[i]
if bonus[i] =='D':
num = num ** 2
elif bonus[i] == 'T':
num = num ** 3
if option[i] == "*":
num *= 2
elif option[i] == '#':
num *= -1
if i<2 and option[i+1] == "*":
num *= 2
answer += num
return answer
'알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 기능개발 (0) | 2024.01.01 |
---|---|
[알고리즘] 백준 1167 - 트리의 지름 (0) | 2023.12.31 |
[알고리즘] 프로그래머스 - 튜플 (0) | 2023.12.30 |
[알고리즘] 프로그래머스 - [1차] 캐시 (0) | 2023.12.30 |
[알고리즘] 백준 1149 - RGB거리 (0) | 2023.12.29 |