문제

https://www.acmicpc.net/problem/3003

 

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰

첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.

www.acmicpc.net

체스 기물의 수를 입력하면 몇 개가 모자라거나 남는지 출력하기.

 

풀이

일단 체스는 흑백의 킹, 퀸, 룩, 비숍, 나이트, 폰으로 이루어져 있다. 킹 하나, 퀸 하나, 룩/비숍/나이트 둘에 폰 여덟이라 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

Profile

Lv. 34 라이츄

요즘 날씨 솔직히 에바참치김치꽁치갈치넙치삼치날치기름치준치학꽁치임..