본문 바로가기
카테고리 없음

백준 3003번 파이썬

by abccoco 2022. 7. 25.

문제

동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.

체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.

체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.

동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.

 
'''
올바른 세트
1 1 2 2 2 8
'''

# 예제 입력 1
>>> 0 1 2 2 2 7
# 예제 출력 1
1 0 0 0 0 1

# 예제 입력 2
>>> 2 1 2 1 2 1
# 예제 출력 2
-1 0 0 1 0 7


코드의 시작은
리스트 처음 올바른 체스 세트와
리스트 내가 입력할 체스 세트를 만들어 준다.
chess_pieces = [1, 1, 2, 2, 2, 8]
my_pieces = list(map(int, input().split()))
 
 
 
다음으로 위의 리스트들을 for문을 사용해 반복해 주는데 체스 말 종류 수 만큼 반복해 주는것으로 설정한다.
for i in range(6):
 
 
다음으로 print를 해 주는데 '올바른 체스 세트의 i 번째' 빼기 '내가 입력한 체스 세트의 i 번째' 를 해준다.
 
이렇게 하면
chess_pieces[index(0)] - my_pieces[index(0)], chess_pieces[index(1)] - my_pieces[index(1)] .... index(5)
5번째 인덱스까지 - 를 해주고 값을 print() 해주게 된다.
print(chess_pieces[i] - my_pieces[i], end=' ')

마지막으로 예제 출력과 같이 답이 나오기 위해서는 end=' ' 가 필요하다. print 된 값 뒤에 ' ' 를 넣어준다.
예시로 end=' ' 가 없는 값 라면 1234로 나올 값이 end=' '가 있다면 1 2 3 4 로 나오게 된다.
end=' '까지 추가한다면 예제 출력과 같은 답이 나오게 되어 문제를 풀 수 있다.
 

 

 

전체 코드

chess_pieces = [1, 1, 2, 2, 2, 8]
my_pieces = list(map(int, input().split()))

for i in range(6):
    print(chess_pieces[i] - my_pieces[i], end=' ')

댓글