
Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ธฐ์ง๊ตญ ์ค์น
N๊ฐ์ ์ํํธ๊ฐ ์ผ๋ ฌ๋ก ์ญ ๋์ด์ ์์ต๋๋ค. ์ด ์ค์์ ์ผ๋ถ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๊ธฐ์ ์ด ๋ฐ์ ํด 5g ์์๊ฐ ๋์์ ธ 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ ค ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ 5
programmers.co.kr
Solution
1. stations๋ฅผ ์ํํ๋ฉฐ ์ ํ๊ฐ ์ค์ง ์๋ ๊ตฌ๊ฐ์ ๊ตฌํฉ๋๋ค.
์ ํ๊ฐ ์์ค๋ ๊ตฌ๊ฐ์ ํ์ฌ ์ค์น๋ ๊ธฐ์ง๊ตญ๋ค์ ์ ํ ๋๋ฌ๊ฑฐ๋ฆฌ ์ฌ์ด์
๋๋ค.
๋ฌธ์ ์ ๋์๋ ์๋ก ๋ค๋ฉด 4์ 11์ ํ์ฌ ๊ธฐ์ง๊ตญ๋ค์ด ์ค์น๋์ด ์๊ณ ์ ํ ๋๋ฌ๊ฑฐ๋ฆฌ ์ฌ์ด๋ 1~2, 6~9 ์
๋๋ค.

2. ์ ํ๊ฐ ์ค์ง ์๋ ๊ตฌ๊ฐ์ ๊ธฐ์ง๊ตญ์ด ๋ช ๊ฐ ํ์ํ์ง ๊ณ์ฐํ๋ค.
์ ํ๊ฐ ์ค์ง ์๋ ๊ตฌ๊ฐ์ ์๊ฐ n์ด๋ผ๋ฉด ํ์ํ ๊ธฐ์ง๊ตญ์ ์๋ n/w*2+1 ์ ์ฌ๋ฆผํ ์์
๋๋ค.
์์ ์์์ 6~9๊น์ง๋ n = 4์ด๊ณ 4/1*1+1 ์ 1.33333... ์ด๋ฏ๋ก 2๊ฐ์ ๊ธฐ์ง๊ตญ์ด ํ์ํฉ๋๋ค.
3. ํ์ฌ ์ค์น๋ ๊ฐ์ฅ ๋ง์ง๋ง ๊ธฐ์ง๊ตญ๊ณผ n๊น์ง์ ๋น ๊ณต๊ฐ ์๋ฅผ ๊ตฌํ๋ค.
ํ์ฌ ์ค์น๋ ๊ธฐ์ง๊ตญ๋ค์ ์ฌ์ด๋ฅผ ๊ตฌํ๊ณ ๊ฐ์ฅ ๋ง์ง๋ง ๊ธฐ์ง๊ตญ๊ณผ n(๋) ์ฌ์ด์ ์๋ฅผ ๊ตฌํฉ๋๋ค.
(์๋๋ก ์๋ฅผ ๋ค๋ฉด 12~16์
๋๋ค.)

4. ํ์ํ ๊ธฐ์ง๊ตญ ์๋ฅผ ๋ฐํํ๋ค.
์์์ ๊ตฌํ ํ์ํ ๊ธฐ์ง๊ตญ ์๋ค์ ๋ชจ๋ ๋ํด ๋ฐํํด์ค๋๋ค.
Source Code
import Foundation | |
func solution(_ n:Int, _ stations:[Int], _ w:Int) -> Int{ | |
var baseStationCount:Int = 0 | |
var start:Int = 1 | |
for station in stations + [n+w+1] { | |
let end = station-(w+1) | |
let emptyCount = Int(ceil(Double(end - start + 1)/Double(w*2+1))) | |
baseStationCount += emptyCount > 0 ? emptyCount : 0 | |
start = station + w + 1 | |
} | |
return baseStationCount | |
} |
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์๋ ์ซ์ ๋ํ๊ธฐ (0) | 2021.09.16 |
---|---|
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ๋ค๋จ๊ณ ์นซ์ ํ๋งค (0) | 2021.09.12 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค ์ํด๋ฆฌ ์ฑ๋ฆฐ์ง 6์ฃผ์ฐจ ๋ณต์ ์ ๋ ฌํ๊ธฐ (0) | 2021.09.06 |
[Swift] 2019 KAKAO BLIND RECRUITMENT ๋งค์นญ ์ ์ (0) | 2021.09.04 |
[Swift] 2020 KAKAO INTERNSHIP ๊ฒฝ์ฃผ๋ก ๊ฑด์ค (0) | 2021.08.31 |
๋๊ธ