https://www.acmicpc.net/problem/12756
12756번: 고급 여관
플레이어 A의 카드가 남아있다면 "PLAYER A"를, 플레이어 B의 카드가 남아있다면 "PLAYER B"를 출력한다. 모두 죽은 상태라면 "DRAW"를 따옴표 없이 출력한다.
www.acmicpc.net
A와 B는 각각 공격력과 생명력을 가지고 있다. 서로를 공격한 후에 생명력이 얼마나 남아있는지 비교하여 풀 수 있는 문제이다.
출력물에 따라 아래와 같이 총 3가지의 경우로 나누어 볼 수 있다.
(1) A가 승리하는 경우
(2) B가 승리하는 경우
(3) 비기는 경우
누군가가 우선순위를 갖지 않고 '동시에' 공격을 하기 때문에, 같이 죽는 경우가 생긴다. ((3)에 해당하는 경우)
'A의 생명력-B의 공격력'과 'B의 생명력-A의 공격력'을 반복문을 사용하여 계속 비교한다.
두 수가 모두 양수인 경우에는 동일한 반복을 계속 하다가,
(1) B의 생명력만 음수가 되는 경우
(2) A의 생명력만 음수가 되는 경우
(3) A와 B의 생명력 모두 음수가 되는 경우
가 생기는 경우, 승패를 판단하고 반복문을 종료시키면 된다.
'Koala - 7기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 20540번 연길이의 이상형 (0) | 2022.07.10 |
---|---|
[백준/Python] 15726번 이칙연산 (0) | 2022.07.10 |
[백준/python] 2869번 달팽이는 올라가고 싶다 (0) | 2022.07.10 |
[백준/python] 4494번 가위 바위 보? (0) | 2022.07.10 |
[백준/Python]8393번 합 (0) | 2022.07.10 |