반응형
https://www.acmicpc.net/problem/2828
2828번: 사과 담기 게임
상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M<N) 플레이어는 게임을 하는 중에 바구니를
www.acmicpc.net
내 코드
import sys
input = sys.stdin.readline
scr, bsk = map(int, input().split())
n = int(input())
arr=[]
l = 1
r = bsk
for i in range(n):
fall = int(input())
if r < fall: #오른쪽에 떨어졌을 때
arr.append(abs(fall-r))
r= fall
l= r-bsk+1
elif l > fall : #왼쪽에 떨어졌을 떄
arr.append(abs(fall-l))
l = fall
r = l+bsk-1
print(sum(arr))
코드 리뷰
이 문제는 완벽한 구현 문제다.
사실 내가 3년 전..실버 2였을 때에도 구현은 어려워했다.
특히 실버 5문제가 그때 어렵게 느껴져서, 실버 2는 정말 알고리즘빨이라고 생각했다.
하지만 2달 동안 골드를 만들면서, 실버 5가 정말 쉬운 문제였구나 싶은 생각이 들었다.
이 문제의 경우 바구니의 크기를 이용하는 것이 관건인데, 나는 바구니의 오른쪽에 떨어지는지 왼쪽에 떨어지는지를 기준으로 정했다.
그래서 바구니의 오른쪽을 r로 두고, 왼쪽을 l로 두고 문제를 해결했다.
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 14888번 : 연산자 끼워넣기 (0) | 2023.07.24 |
|---|---|
| [Python][백준/BOJ] 16953번 : A → B (0) | 2023.07.24 |
| [Python][백준/BOJ] 2210번 : 숫자판 점프 (0) | 2023.07.20 |
| [Python][백준/BOJ] 1094번 : 막대기 (0) | 2023.07.20 |
| [Python][백준/BOJ] 9372번 : 상근이의 여행 (0) | 2023.07.20 |