01ํ์ผ(1904๋ฒ)
Silver 3
#๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
https://www.acmicpc.net/problem/1904
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
ํ์ผ์ ๊ตฌ์ฑ์ด 00, 1๋ก ์ด 2๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ํ์ผ๋ค๋ก ๊ตฌ์ฑํด์ผ ํ๋ ์๋ฆฟ์๊ฐ N์ผ ๋ ํ์ผ 2์ข ๋ฅ๋ฅผ ๋ฌดํ๋๋ก ์ฌ์ฉํด์ ์๋ฆฟ์๊ฐ N์ธ ์๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
๋ฌธ์ ์ค๋ช ์์์ฒ๋ผ N์ด 4์ผ ๋๋ 0011, 0000, 1001, 1100, 1111 ์ด 5๊ฐ์ง์ ๊ฒฝ์ฐ์ ์๊ฐ ์กด์ฌํ๋ค.
๋จผ์ N์ ๊ฐ์์ ๋ฐ๋ผ ๊ฒฝ์ฐ์ ์๊ฐ ๋ช ๊ฐ์ธ์ง ์ผ์ผ์ด ์ธ์ ์์๋ด ๋ณด์.
์์ ํ๋ ์๋ฆฟ์(N)์ ๋ฐ๋ฅธ 00, 1๋ก ๋ํ๋ผ ์ ์๋ N์๋ฆฌ์ ์๋ค์ ๋์ดํ ๊ฒ์ด๋ค.
์ด๋ค ๊ท์น์ด ๋ณด์ด๊ฒ ๋๋ค.
๋ฐ๋ก ํผ๋ณด๋์น์์ด๊ณผ ๋์ผํ ๊ท์น์ผ๋ก ๊ฐ์๊ฐ ์ฆ๊ฐํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
N์ด 3์ด ๋ ๋๋ถํฐ ํผ๋ณด๋์น์์ด์ ๊ตฌํ ๋์ฒ๋ผ ๋ฐ๋ก ๋ท์๋ฆฌ์ ๊ฐ์์ ๋ ๋ฒ์งธ ๋ท์๋ฆฌ์ ๊ฐ์์ ํฉ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ์ ํ์์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
array[i] = (array[i - 1] + array[i - 2]) % 15746
15746์ ๋๋๋ ์ด์ ๋ ๋ฌธ์ ์ค๋ช ์ ์ธ๊ธ๋์ด ์๋ค์ํผ ์ด๊ฐ์์ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ 15746์ ๋๋ ๋๋จธ์ง๋ฅผ ๋์ ํด ์ค๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val tileCnt = readLine().toInt()
val array = Array(tileCnt + 1) { 1 }
for (i in 2 .. tileCnt) {
array[i] = (array[i - 1] + array[i - 2]) % 15746
}
println(array[tileCnt])
}
๋ฌธ์ ํ์ด
ํ์ผ์ ์ด๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ๊ฐ ์๋ฆฟ์์ ํ์ผ์ ๊ฐ์๋ฅผ ์ ์ฅํ array์ ์ด๊ธฐ ๋ฐ์ดํฐ๋ฅผ 1๋ก ์ค์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ 2๋ถํฐ ์์ํด์ ํผ๋ณด๋์น์์ด ๊ตฌํ๋ฏ์ด ์์์ ์ธ๊ธํ ์ ํ์์ ๋์ ํด์ ๋ง์ง๋ง์ tileCnt๋ฒ์งธ index์ ๊ฐ์ ์ถ๋ ฅ.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ ๊ฐ ๊ฒฝ์ฐ์ ํด๋นํ๋ ๋ต์ ์ง์ ์ฐพ์์ ๊ตฌํด ๋ณด๋ฉด ๊ท์น ํ์ ์ด ์ฌ์์ ์ ํ์์ ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค.
์ ํ๋ค๋ฉด ๋ธ๋ฃจํธํฌ์ค๋ก ๊ตฌํํด ๋ณด๊ณ ์ค๋ณต๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํด ๊ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํด ๋ณด๋ผ๊ณ ํ๋๋ฐ, ์์ง๊น์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ฌ์ ํ ์ด๋ ต๋ค ๋ค์ด๋ค๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋.
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S5] ๋ฐฑ์ค 11068๋ฒ ํ๋ฌธ์ธ ์ (0) | 2024.08.23 |
---|---|
[Kotlin, S1] ๋ฐฑ์ค 1991๋ฒ ํธ๋ฆฌ ์ํ (0) | 2024.08.21 |
[Kotlin, S3] ๋ฐฑ์ค 1002๋ฒ ํฐ๋ (0) | 2024.08.20 |
[Kotlin, S3] ๋ฐฑ์ค 1004๋ฒ ์ด๋ฆฐ ์์ (0) | 2024.08.19 |
[Kotlin, S3] ๋ฐฑ์ค 2346๋ฒ ํ์ ํฐ๋จ๋ฆฌ๊ธฐ (0) | 2024.08.19 |