티스토리 뷰

📚 문제

입력

  • 첫 번째 줄에는 총 게임 횟수 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 or L 여부를 판단해서 현재 점수에 반영한다.
  • 이때, 게임에서 진 경우 점수에서 감산한 결과가 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))
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함