-
Kotlin ๐ฌ ๋ฐฑ์ค 15๋จ๊ณ :: 13909 ๋ฒ2024. 3. 24. 18:37๋ฐ์ํ
์ฐฝ๋ฌธ ๋ซ๊ธฐ
๋ฌธ์ |
์๊ฐ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ ์ค์ต์ค R912ํธ์๋ ํ์ฌ N๊ฐ์ ์ฐฝ๋ฌธ์ด ์๊ณ ๋ N๋ช ์ ์ฌ๋์ด ์๋ค. 1๋ฒ์งธ ์ฌ๋์ 1์ ๋ฐฐ์ ๋ฒ์งธ ์ฐฝ๋ฌธ์ ์ด๋ ค ์์ผ๋ฉด ๋ซ๊ณ ๋ซํ ์์ผ๋ฉด ์ฐ๋ค. 2๋ฒ์งธ ์ฌ๋์ 2์ ๋ฐฐ์ ๋ฒ์งธ ์ฐฝ๋ฌธ์ ์ด๋ ค ์์ผ๋ฉด ๋ซ๊ณ ๋ซํ ์์ผ๋ฉด ์ฐ๋ค. ์ด๋ฌํ ํ๋์ N๋ฒ์งธ ์ฌ๋๊น์ง ์งํํ ํ ์ด๋ ค ์๋ ์ฐฝ๋ฌธ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ผ. ๋จ, ์ฒ์์ ๋ชจ๋ ์ฐฝ๋ฌธ์ ๋ซํ ์๋ค.
์๋ฅผ ๋ค์ด ํ์ฌ 3๊ฐ์ ์ฐฝ๋ฌธ์ด ์๊ณ 3๋ช ์ ์ฌ๋์ด ์์ ๋,
- 1๋ฒ์งธ ์ฌ๋์ 1์ ๋ฐฐ์์ธ 1,2,3๋ฒ ์ฐฝ๋ฌธ์ ์ฐ๋ค. (1, 1, 1)
- 2๋ฒ์งธ ์ฌ๋์ 2์ ๋ฐฐ์์ธ 2๋ฒ ์ฐฝ๋ฌธ์ ๋ซ๋๋ค. (1, 0, 1)
- 3๋ฒ์งธ ์ฌ๋์ 3์ ๋ฐฐ์์ธ 3๋ฒ ์ฐฝ๋ฌธ์ ๋ซ๋๋ค. (1, 0, 0)
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ง์ง๋ง์ ์ด๋ ค ์๋ ์ฐฝ๋ฌธ์ ๊ฐ์๋ 1๊ฐ ์ด๋ค.
์ ๋ ฅ |
์ฒซ ๋ฒ์งธ ์ค์๋ ์ฐฝ๋ฌธ์ ๊ฐ์์ ์ฌ๋์ ์ N(1 ≤ N ≤ 2,100,000,000)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ |
๋ง์ง๋ง์ ์ด๋ ค ์๋ ์ฐฝ๋ฌธ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด |
์ฐฝ๋ฌธ ์ํ๋ฅผ ์ ์ฅํ๋ boolean array๋ฅผ ์์ฑํ๋ค. (๋ซํ ์ํ๋ฉด false, ์ด๋ฆฐ ์ํ๋ฉด true)
1๋ถํฐ N ๊น์ง ๋๋ฉด์ ํด๋น ๊ฐ์ ๋ฐฐ์ ๊ฐ์ผ๋ก true๋ฉด false๋ก, false๋ฉด true๋ก ์ํ๋ฅผ ๋ณ๊ฒฝํด์ฃผ๊ณ ์ต์ข ์ ์ผ๋ก true์ธ ์ํ์ ๊ฐ์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ค.
๋ต์ |
fun main() { val N = readLine()!!.toInt() val windows = BooleanArray(N) { false } for (person in 1..N) { for (i in person - 1 until N step person) { windows[i] = !windows[i] } } val count = windows.count { it } print(count) }
^ ๊ทธ๋ฐ๋ฐ NZEC์ด๋ผ๋ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
Exit code๊ฐ 0์ด ์๋๊ฒ ๋ญ๊น... ์๋ฌดํผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋ค.
์ง์ ๊ฐ์ ์ฝ์๋ฅผ ์ง๋๋ฉด ์ต์ข ์ ์ผ๋ก ๋ซํ์ํ์ด๋ฏ๋ก, ํ์ ๊ฐ์ ์ฝ์๋ฅผ ์ง๋ ์์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ฉด ๋๋ค. ํ์ ๊ฐ์ ์ฝ์๋ฅผ ์ง๋ ์๋ ์ ๊ณฑ๊ทผ์ด๊ธฐ ๋๋ฌธ์ N ์ดํ์ ์ ๊ณฑ๊ทผ์ ์๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.
fun main() { val N = readLine()!!.toInt() var count = 0 var i = 1 while (i * i <= N) { count++ i++ } print(count) }
๋ฐ์ํ'๐ Algorithm > ๐ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Kotlin ๐ฌ ๋ฐฑ์ค 15๋จ๊ณ :: 17103 ๋ฒ (1) 2024.03.23 Kotlin ๐ฌ ๋ฐฑ์ค 15๋จ๊ณ :: 4948 ๋ฒ (0) 2024.03.14 Kotlin ๐ฌ ๋ฐฑ์ค 15๋จ๊ณ :: 1929 ๋ฒ (0) 2024.03.13 Kotlin ๐ฌ ๋ฐฑ์ค 15๋จ๊ณ :: 4134 ๋ฒ (0) 2024.03.12 Kotlin ๐ฌ ๋ฐฑ์ค 15๋จ๊ณ :: 2485 ๋ฒ (0) 2024.03.11