문제
https://www.acmicpc.net/problem/3003
체스 기물의 수를 입력하면 몇 개가 모자라거나 남는지 출력하기.
풀이
일단 체스는 흑백의 킹, 퀸, 룩, 비숍, 나이트, 폰으로 이루어져 있다. 킹 하나, 퀸 하나, 룩/비숍/나이트 둘에 폰 여덟이라 16개. 그나저나 이 문제 if로 가야 하는 거 아님? 왜 여기 있음? 아니 if 안가도 됨…
일단 각 케이스를 보자.
0 1 2 2 2 7 -> 1 0 0 0 0 1
2 1 2 1 2 1 -> -1 0 0 1 0 7
1번 케이스: 킹과 폰이 하나씩 모자람
2번 케이스: 킹이 하나 남고 비숍, 폰이 각각 1개, 7개 모자람
그러니까 입력값과 출력값을 합해서 1 1 2 2 2 8이 나와야 한다.
import sys
king, queen, rook, bishop, knight, pawn = map(int, sys.stdin.readline().split())
king = 1 - king
queen = 1 - queen
rook = 2 - rook
bishop = 2 - bishop
knight = 2 - knight
pawn = 8 - pawn
print(king, queen, rook, bishop, knight, pawn)
그러므로 입력받은 기물의 수를 1 1 2 2 2 8에서 빼면 된다.
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 1018번 풀이 (0) | 2022.08.20 |
---|---|
백준 25304번 풀이 (0) | 2022.08.20 |
백준 7568번 풀이 (0) | 2022.08.19 |
백준 2231번 풀이 (0) | 2022.08.19 |
백준 2798번 풀이 (0) | 2022.08.19 |