๐ธ FrogJump ๋ฌธ์ ํด๊ฒฐ โ
๋ฌธ์ ์ค๋ช โ
๊ฐ๊ตฌ๋ฆฌ๊ฐ ์์น X์์ ์์ํ์ฌ ๋ชฉํ ์ง์ Y๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
๊ฐ๊ตฌ๋ฆฌ๋ ํ ๋ฒ ์ ํํ ๋ ๊ณ ์ ๋ ๊ฑฐ๋ฆฌ D๋งํผ ์ด๋ํ ์ ์์ต๋๋ค.
๊ฐ๊ตฌ๋ฆฌ๊ฐ Y ์ด์์ผ๋ก ๋๋ฌํ๋ ๋ฐ ํ์ํ ์ต์ ์ ํ ํ์๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์
๋๋ค.
๋ฌธ์ ์กฐ๊ฑด โ
- ๊ฐ๊ตฌ๋ฆฌ๋ ํ ๋ฒ์ ์ ํํ
D๋งํผ ์ ํํ ์ ์์ต๋๋ค. - ๊ฐ๊ตฌ๋ฆฌ๋
X >= Y์ธ ๊ฒฝ์ฐ ์ ํํ ํ์๊ฐ ์์ต๋๋ค. (๊ฒฐ๊ณผ๋0) - ํ์ํ ์ต์ ์ ํ ํ์๋ฅผ ๊ณ์ฐํด์ผ ํฉ๋๋ค.
์์ โ
X | Y | D | ํ์ํ ์ ํ ํ์ |
|---|---|---|---|
10 | 85 | 30 | 3 |
0 | 75 | 20 | 4 |
10 | 10 | 5 | 0 |
์์ ์ค๋ช (์ฒซ ๋ฒ์งธ ์ผ์ด์ค) โ
- ํ์ฌ ์์น:
X = 10 - ๋ชฉํ ์์น:
Y = 85 - ํ ๋ฒ ์ ํ ์
D = 30 - ์ ํ ๊ณผ์ :
10 โ 40 โ 70 โ 100 - ์ต์
3๋ฒ ์ ํ ํ์
ํด๊ฒฐ ๋ฐฉ๋ฒ โ
์ด ์ด๋ํด์ผ ํ ๊ฑฐ๋ฆฌ ๊ณ์ฐ:
distance = Y - Xํ์ํ ์ ํ ํ์ ๊ณ์ฐ:
distance๊ฐD๋ก ๋๋์ด ๋จ์ด์ง๋ฉดdistance / D- ๋๋์ด ๋จ์ด์ง์ง ์์ผ๋ฉด
Math.floor(distance / D) + 1(์ถ๊ฐ ์ ํ ํ์)
์ฆ, ์ฌ๋ฆผ(ceil) ์ฐ์ฐ์ ์ ์ฉํ์ฌ ์ ํ ํ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์ฝ๋ ๊ตฌํ โ
typescript
function solution(X: number, Y: number, D: number): number {
const distance = Y - X // ์ด ์ด๋ํด์ผ ํ ๊ฑฐ๋ฆฌ
return distance % D === 0 ? distance / D : Math.floor(distance / D) + 1
}์ฝ๋ ์ค๋ช โ
์ด๋ํด์ผ ํ ๊ฑฐ๋ฆฌ ๊ณ์ฐ
typescriptconst distance = Y - X- ํ์ฌ ์์น์์ ๋ชฉํ ์์น๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐ
ํ์ํ ์ ํ ํ์ ๊ณ์ฐ
typescriptreturn distance % D === 0 ? distance / D : Math.floor(distance / D) + 1distance % D === 0โD๋ก ์ ํํ ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ
โdistance / D๊ทธ๋๋ก ๋ฐํ- ๊ทธ๋ ์ง ์์ผ๋ฉด
Math.floor(distance / D) + 1โ ์ถ๊ฐ ์ ํ ํ์
์๊ฐ ๋ณต์ก๋ โ
- ๋ชจ๋ ์ฐ์ฐ์ด
O(1)(์์ ์๊ฐ)
โ ์ ๋ ฅ ํฌ๊ธฐ์ ์๊ด์์ด ํญ์ ์ผ์ ํ ์๊ฐ์ ํด๊ฒฐ ๊ฐ๋ฅ
์คํ ์์ โ
typescript
console.log(solution(10, 85, 30)) // ์ถ๋ ฅ: 3
console.log(solution(0, 75, 20)) // ์ถ๋ ฅ: 4
console.log(solution(10, 10, 5)) // ์ถ๋ ฅ: 0์ต์ข ์ ๋ฆฌ โ
โ
O(1)์ ๋น ๋ฅธ ์ฐ์ฐ
โ
๊ฑฐ๋ฆฌ ๊ณ์ฐ ํ ํ์ํ ์ ํ ํ์ ๊ณ์ฐ
โ
์ฌ๋ฆผ(ceil) ์ฐ์ฐ์ ํ์ฉํ ๊น๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ด์ ๊ฐ๊ตฌ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์ ํ์์ผ ๋ชฉํ ์ง์ ์ ๋๋ฌ์ํฌ ์ ์์ต๋๋ค! ๐ธ๐