๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ™‚ | Silver

[Kotlin, S3] ๋ฐฑ์ค€ 1904๋ฒˆ 01ํƒ€์ผ

by immgga 2024. 8. 20.

์ถœ์ฒ˜: unsplash.com

 

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์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ผ์ผ์ด ์„ธ์„œ ์•Œ์•„๋‚ด ๋ณด์ž.

์‚ฌ์ง„ 1-1

์œ„์˜ ํ‘œ๋Š” ์ž๋ฆฟ์ˆ˜(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์˜ ๊ฐ’์„ ์ถœ๋ ฅ.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ๋Š” ๊ฐ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๋‹ต์„ ์ง์ ‘ ์ฐพ์•„์„œ ๊ตฌํ•ด ๋ณด๋ฉด ๊ทœ์น™ ํŒŒ์•…์ด ์‰ฌ์›Œ์„œ ์ ํ™”์‹์„ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ • ํž˜๋“ค๋ฉด ๋ธŒ๋ฃจํŠธํฌ์Šค๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๊ณ  ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•ด ๊ฐ€๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๋ผ๊ณ  ํ•˜๋˜๋ฐ, ์•„์ง๊นŒ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์—ฌ์ „ํžˆ ์–ด๋ ต๋‹ค ๋‹ค์ด๋‹ค๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ๋Š”.

728x90