[파이썬 문제풀이 1강] 백준 단계별로 풀어보기 1.1 < 3003번 >
1. 문제 : 킹, 퀸, 룩, 비숍, 나이트, 폰 < 3003번 >
(1) 링크 : https://www.acmicpc.net/problem/3003
(2) 설명 : 올바른 체스판의 조건이 주어진다.
현재 체스판의 상태가 주어질 때, 올바른 체스판이 되기 위한 기물의 변화 개수를 리스트로 출력하시오.
2. 풀이 전략
(1) 예제 해석
먼저, 첫 번째 예제의 상황입니다.
[1, 1, 2, 2, 2, 8]의 경우가 올바른 체스판인데, 예제 1 체스판의 경우 [0, 1, 2, 2, 2, 7]이 주어졌습니다.
따라서 [0, 1, 2, 2, 2, 7] -> [1, 1, 2, 2, 2, 8] 이 되기 위해서는 맨앞 맨뒤 각각 1개씩의 기물이 더 필요합니다.
그 다음 두 번째 예제의 상황입니다.
마찬가지로 [1, 1, 2, 2, 2, 8]의 경우가 올바른 체스판인데, 예제 2 체스판의 경우 [2, 1, 2, 1, 2, 1]이 주어졌습니다.
따라서 [2, 1, 2, 1, 2, 1] -> [1, 1, 2, 2, 2, 8] 이 되기 위해서는 (맨앞 기물 -1) / (네번째 기물 +1) / (맨뒤 기물 +7)을
해주어야 합니다.
즉, "올바른 체스판 리스트에서 주어진 체스판 리스트의 원소 각각을 서로 뺀 리스트가 답이 됩니다."
(2) 도식화
① 입력 자료형 선정
위의 예제에서 봤듯이 리스트의 원소를 서로 빼는 과정이 진행되어야 하므로,
처음 부터 정수형을 원소로 가지는 리스트로 입력받는 것이 좋습니다.
( 정수형 리스트 입력 방법 : https://study-all-night.tistory.com/60 )
② 알고리즘 (for문 기초 : https://wikidocs.net/22)
1단계. (올바른 체스판 리스트)와 (주어진 체스판 리스트)에 대해 for문을 이용하여 각각의 원소에 접근한다.
2단계. for문 이전에 선언한 빈 리스트에, 원소의 차이를 추가한다.
③ 출력
리스트를 한줄에 출력한다
(3) 프로그래밍
이제 위 아이디어를 토대로 코드를 짜면 아래와 같이 프로그래밍할 수 있습니다!
# 백준 3003 풀이 1
right = [1, 1, 2, 2, 2, 8] # 올바른 체스판 리스트
temp = list(map(int, input().split())) # 주어진 체스판 리스트 입력
solution = []
for i in range(6) : # 0~5 index 접근
solution.append(right[i]-temp[i])
for i in solution :
print(i, end = ' ')
길이는 비슷하지만 "zip 함수"를 이용하면 조금 더 pythonic한 코드를 짤 수 있습니다~
# 백준 3003 풀이 2
right = [1, 1, 2, 2, 2, 8] # 올바른 체스판 리스트
temp = list(map(int, input().split())) # 주어진 체스판 리스트 입력
solution = []
for i, j in zip(right, temp) : # zip 함수 응용
solution.append(i-j) # 각 원소의 차이 저장
for i in solution :
print(i, end = ' ')
'밤샘코딩 > 백준 단계별로 풀어보기 (문제)' 카테고리의 다른 글
[파이썬 문제풀이 2강] 백준 단계별로 풀어보기 2.1 < 9498번 > (0) | 2022.11.15 |
---|---|
[백준 2839번] 설탕 배달 - Python(파이썬) 자세한 풀이 (0) | 2021.07.07 |
[백준 11729번] 하노이 탑 이동순서 - Python(파이썬) 자세한 풀이 (5) | 2020.07.29 |
[백준 2447번] 별찍기 10 - Python(파이썬) 자세한 풀이 (7) | 2020.07.29 |
댓글
이 글 공유하기
다른 글
-
[파이썬 문제풀이 2강] 백준 단계별로 풀어보기 2.1 < 9498번 >
[파이썬 문제풀이 2강] 백준 단계별로 풀어보기 2.1 < 9498번 >
2022.11.15 -
[백준 2839번] 설탕 배달 - Python(파이썬) 자세한 풀이
[백준 2839번] 설탕 배달 - Python(파이썬) 자세한 풀이
2021.07.07 -
[백준 11729번] 하노이 탑 이동순서 - Python(파이썬) 자세한 풀이
[백준 11729번] 하노이 탑 이동순서 - Python(파이썬) 자세한 풀이
2020.07.29 -
[백준 2447번] 별찍기 10 - Python(파이썬) 자세한 풀이
[백준 2447번] 별찍기 10 - Python(파이썬) 자세한 풀이
2020.07.29