맞추긴 맞춤
다른 분들 코드를 보다가 너무 깔끔한 풀이가 있어 놀라웠다
import sys
N=int(sys.stdin.readline())
M=int(sys.stdin.readline()) #가로등의 개수 M
p=list(map(int,sys.stdin.readline().split())) #가로등들의 위치 x를 담은 리스트
def ceil(n):
if n==int(n):
return int(n)
else:
return int(n)+1
if M==1:
print( max(N -p[0], p[0]) )
else:
for i in range(len(p)):
if i==0: #맨처음 가로등
h=p[0]
elif i==len(p)-1:
h=max(h, N - p[i])
else: #맨처음과 맨 마지막을 제외한 가로등들
h=max(h, ceil( (p[i]-p[i-1]) / 2) ) #가로등과 가로등 사이의 중간지점(빛이 닿는 마지막 부분)
print(h)
맨 처음과 맨 마지막을 제외한 가로등들을 볼 때
max를 꼭 추가해줘야 한다
조명이 끝까지 닿아서 불이 꺼진 곳이 없도록
max로 계속 갱신해 나가야 한다!
모든 경우의 수를 포함해서 빈틈없이 푸는 연습을 많이 하자.
https://velog.io/@cococoo1622/백준Python-17266번-어두운-굴다리
깔끔하게 푸신 분의 풀이
import math
n=int(input())
M=int(input())
x = list(map(int,input().split()))
height = 0
for i in range(1,len(x)):
height = max(math.ceil((x[i]-x[i-1])/2), height)
print(max(height,x[0],n-x[-1]))
맨 처음 가로등과 맨 마지막 가로등을 나는 if else로 나눴는데
그러지않고 마지막에 print max 해서 깔끔하게 푼 방법
'CS > 알고리즘' 카테고리의 다른 글
백준 파이썬 13305번 주유소 - 간단한 풀이 (0) | 2024.07.07 |
---|---|
파이썬 2164번 카드2 - list와 deque의 시간복잡도 & 0~N 리스트 만들기 (0) | 2024.07.06 |
백준 1205번 파이썬 풀이: 등수 구하기 (0) | 2024.07.04 |
백준 20125번 파이썬 : 쿠키의 신체 측정 (0) | 2024.07.04 |
[파이썬] 백준- 1927번 최소 힙 (0) | 2024.02.02 |