[ 문제 ]
동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.
체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.
체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.
동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.
[ 조건 ]
<입력>
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
<출력>
첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하는 것이고, 음수라면 제거해야 하는 것이다.
[ 풀이 ]
# My solution
piece = [1,1,2,2,2,8] #1
have_piece = list(map(int, input().split())) #2
for i in range(len(piece)) : #3
print(piece[i]-have_piece[i], end=' ')
실행결과
0 1 2 2 2 7 # 입력1
1 0 0 0 0 1 # 출력1
2 1 2 1 2 1 # 입력2
-1 0 0 1 0 7 # 출력2
#1
문제에서 알려준 체스의 총 피스 개수를 리스트로 생성한다.
#2
띄어쓰기를 기준으로 한 번에 값을 입력받기 때문에 이전 포스트에서 알아보았던 map()함수를 이용해 입력을 받는다.
이때 1에서 생성했던 리스트의 값들과 차이를 구하기 위해서 입력받은 값들도 list()함수를 통해 리스트로 만들어준다.
#3
for 반복문을 이용하여 각 리스트의 요소끼리 뺄셈을 해준다.
이때 반복문의 범위는 len()함수를 사용하여 리스트 요소의 개수만큼 반복한다.
또한 단순히 print()를 이용하여 출력하면 한 번에 한 줄에 값을 출력할 수 없기 때문에, print()의 end옵션을 이용하여 각 출력값들 사이 한 칸씩 띄어서 한 줄에 출력하도록 한다.
다양한 결과를 출력하기 위해서 사용되는 print()함수에는 여러 옵션을 지원한다.
그중 대표적으로 sep와 end의 옵션이 있다.
1) sep
sep은 separation의 약자로, 구분자를 의미한다.
print()를 통해 여러 값을 출력할 때 각각의 값들 사이에 출력할 구분자를 정할 수 있다.
print('P','Y','T','H','O','N', sep='@') # 입력1
print('J','A','C','K', sep='+') # 입력2
실행결과
P@Y@T@H@O@N # 출력1
J+A+C+K # 출력2
사용법은 위의 예시와 같이 [ sep=' ' ]의 형태로 사용하며, 따옴표 사이에 원하는 구분자를 입력하면 된다.
2) end
end옵션은 print()함수가 줄바꿈을 하지 않고 이후의 출력값을 이어서 출력할 수 있게 해준다.
print('John', end='')
print('Jack')
실행결과
JohnJack
sep와 같이 [ end=' ' ]의 형태로 사용하며, 마찬가지로 구분자로 사용할 수 있어서 sep와 기능은 비슷하나,
end옵션은 print()함수를 여러 번 사용하여 출력하는 경우 사용한다.
print('Hello', end='@')
print('Python')
실행결과
Hello@Python
https://www.acmicpc.net/problem/3003
3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
www.acmicpc.net
'Python > 백준 예제 풀이 모음' 카테고리의 다른 글
[백준] [Python] 2525번: 오븐 시계 (0) | 2022.10.14 |
---|---|
[백준] [Python] 2884번: 알람 시계 (0) | 2022.10.10 |
[백준] [Python] 1000번: A + B (0) | 2022.10.02 |
[백준] [Python] 10870번: 피보나치 수 5 (0) | 2022.07.11 |
[백준 예제 풀이 모음] - 서론 (0) | 2022.05.06 |
댓글