๐ธ 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) + 1
distance % 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) ์ฐ์ฐ์ ํ์ฉํ ๊น๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ด์ ๊ฐ๊ตฌ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์ ํ์์ผ ๋ชฉํ ์ง์ ์ ๋๋ฌ์ํฌ ์ ์์ต๋๋ค! ๐ธ๐