문제


풀이
가로등 간의 최대 간격을 찾으면 되는 문제이다. 일반적인 가로등 간의 간격과, 시작점과 첫 가로등의 간격, 도착점과 마지막 가로등의 간격을 알아내면 된다.
가로등 사이의 간격은 양 사이드 모두가 가로등이기 때문에 간격에서 2를 나눠줄 필요가 있다.
이 문제에는 작은 함정이 하나 있는데, 가로등 사이의 간격이 만약 홀수인 경우에는 2로 나눴을 때 0.5가 내림 되기 때문에 주의해야 한다.
코드
import Foundation
let n = Int(readLine()!)!
let m = Int(readLine()!)!
let x = readLine()!.split(separator: " ").map { Int($0)! }
var answer = max(x.first!, n - x.last!)
for idx in 1..<m {
let interval = Int(ceil(Double(x[idx] - x[idx - 1]) / 2.0))
if interval > answer {
answer = interval
}
}
print(answer)'Online Judge > Problem Solving' 카테고리의 다른 글
| [백준]BOJ 2668: 숫자고르기 - C++/DFS (0) | 2024.06.04 |
|---|---|
| [백준]BOJ 14179: 빗물 - C++/Stack (0) | 2024.05.28 |
| [백준]BOJ 14891: 톱니바퀴 - Python (0) | 2024.04.19 |
| [백준]BOJ 14890: 경사로 - Python/구현 (0) | 2024.04.19 |
| [백준]BOJ 14499: 주사위 굴리기 - Python (0) | 2024.04.15 |