백준 알고리즘

백준 3003 파이썬

KokoaJelly 2023. 1. 21. 01:00

 

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

 

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

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

www.acmicpc.net

 

이 문제는 그렇게 간단한 문제는 아니다. 

하지만, 논리 구조만 따라간다면 어려울 것이 없는 문제다. 

먼저 답을 보자면, 

 

chess_table = [1,1,2,2,2,8]
input_data = list(map(int,input().split()))
blank_list = []

for i in range(len(chess_table)):
    num = chess_table[i] - input_data[i]
    blank_list.append(num)

for i in blank_list:
    print(i, end=' ')

이렇게 된다. 

물론, 이보다 쉽게 만들 수 있는 코드는 많을 것이다. 

나는 논리구조에 맞게 한번 코드를 짜봤다. 

 

먼저, 문제에 제시되어 있는 체스 테이블을 본다면, 1,1,2,2,2,8은 무조건 고정되어 있다. 

따라서, 그에 따라 고정되어 있는 리스트를 만들고, 데이터를 입력받아 하나씩 쪼개 리스트를 만들어준다. 

그 후, 빈 리스트를 만든 다음 for 문을 이용하여 체스 테이블과 입력 받은 수를 각각 뺀 후, 그것을 다시 빈 리스트에 넣어준다. 

 

그리고, 일자로 출력해주면 끝이다. 

 

chess_table = [1,1,2,2,2,8]
input_data = list(map(int,input().split()))


for i in range(len(chess_table)):
    print(chess_table[i] - input_data[i], end=' ')

이런 식으로도 쉽게 구현이 가능하다.