티스토리 뷰
📚 문제
입력
- 첫 번째 줄에는 총 게임 횟수 N과 해킹을 통해 얻은 플레이어 정보의 수 P가 주어진다. (N과 P는 1,000이하의 자연수)
- 그리고 두 번째 줄에는 이긴 경우 획득 점수 W와 졌을 때 떨어지는 점수 L, 그리고 IRON 티어에서 벗어나기 위한 점수 G가 주어진다. (0 ≤ W, L ≤ 100, 1 ≤ G ≤ 100,000, 이 때, W, L, G는 정수)
- 그리고 다음 P개의 줄에는 플레이어의 이름과 무조건 이길 수 있는 경우 W, 무조건 지는 경우 L이라는 단어가 플레이어 이름과 쌍으로 나온다.
- 그리고 그 다음 N개의 줄에는 같이 게임을 하는 플레이어의 이름이 나온다.
- 플레이어 이름은 반드시 대문자로 나오며 길이는 20이 넘지 않는다.
출력
- 0점부터 시작하였을 때 형동이가 아이언 티어에서 벗어나지 못한 경우 "I AM IRONMAN!!", 아이언 티어에서 벗어난 경우 “I AM NOT IRONMAN!!”을 출력한다.
입력 예시 1
10 3
20 15 100
JIHOON W
GANGYEOP L
MINSUNG L
JIHOON
MYEONGKI
GANGYEOP
MINSUNG
JIHOON
JIHOON
JIHOON
JIHOON
JIHOON
MINSUNG
출력 예시 1
I AM NOT IRONMAN!!
입력 예시 2
10 3
20 15 100
JIHOON W
GANGYEOP L
MINSUNG L
JIHOON
GANGYEOP
JISUP
MINSUNG
JIHOON
JIHOON
MOJI
KYUNGMIN
SOOHO
SEOKGYE
출력 예시 2
I AM IRONMAN!!
🧑🏻💻 풀이 과정
- 플레이어 이름(
name
)이 해킹을 통해 알아낸 플레이어 이름(names
)에 포함된다면W
orL
여부를 판단해서 현재 점수에 반영한다. - 이때, 게임에서 진 경우 점수에서 감산한 결과가 0점 이하라면, 0점으로 초기화해주어야 한다.
- 만약,
names
에 포함되지 않으면, 무조건 패배이므로 점수를 감산하거나, 감산 결과가 마이너스인 경우 0점으로 초기화한다. - 승급 점수 이상이라면 이후 플레이는 상관없으므로, 매 루프 마지막에 승급 점수에 도달했는지 확인하자
# 승리점수(ws), 패배점수(ls), 승급점수(ts)
def start_game(num, ws, ls, ts, names):
score = 0
for i in range(num):
name = input()
# 해킹을 통해 알아낸 유저의 경우..
if names.get(name):
if names.get(name) == 'W':
score += ws
elif names.get(name) == 'L':
if score - ls < 0:
score = 0
else:
score -= ls
# 해킹을 통해 알아내지 못한 유저는 무조건 패배한다.
else:
if score - ls < 0:
score = 0
else:
score -= ls
if score >= ts:
return 'I AM NOT IRONMAN!!'
return 'I AM IRONMAN!!'
n, p = map(int, input().split())
ws, ls, ts = map(int, input().split())
names = {}
for _ in range(p):
k, v = map(str, input().split())
names[k] = v
print(start_game(n, ws, ls, ts, names))
'알고리즘' 카테고리의 다른 글
[algorithm] 백준 2847 - 게임을 만든 동준이 (파이썬) (0) | 2022.07.02 |
---|---|
[algorithm] 백준 14382 - 숫자세는 양 (Large) (파이썬) (0) | 2022.06.29 |
[algorithm] 백준 11008 - 복붙의 달인 (파이썬) (0) | 2022.06.26 |
[algorithm] 백준 16435 - 스네이크 버드 (파이썬) (0) | 2022.06.25 |
[algorithm] 프로그래머스 - 제일 작은 수 제거하기 (0) | 2022.06.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- spring boot
- 정렬
- webflux
- 코테
- Algorithm
- 파이썬
- 리팩토링
- 릿코드
- 백준
- MySQL
- leetcode
- kotlin
- 스프링
- 인프런
- 김영한
- 그리디
- 스프링부트
- 노마드코더
- Real MySQL
- 스프링 부트
- 데이터베이스
- 자료구조
- Spring
- 코틀린
- mysql 8.0
- 북클럽
- 문자열
- 노마드
- 알고리즘
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함