๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”ํ‹€๋ฆฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

(5)
[Kotlin] ๋ฐฑ์ค€ 14888 - ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ(์žฌ๊ท€์™„์ „ํƒ์ƒ‰ DFS, ๋ฐฑํŠธ๋ž˜ํ‚น) ๋ฌธ์ œN๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด A1, A2, ..., AN์ด ์ฃผ์–ด์ง„๋‹ค. ๋˜, ์ˆ˜์™€ ์ˆ˜ ์‚ฌ์ด์— ๋ผ์›Œ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” N-1๊ฐœ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์—ฐ์‚ฐ์ž๋Š” ๋ง์…ˆ(+), ๋บ„์…ˆ(-), ๊ณฑ์…ˆ(×), ๋‚˜๋ˆ—์…ˆ(÷)์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.์šฐ๋ฆฌ๋Š” ์ˆ˜์™€ ์ˆ˜ ์‚ฌ์ด์— ์—ฐ์‚ฐ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์„œ, ์ˆ˜์‹์„ ํ•˜๋‚˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ์ฃผ์–ด์ง„ ์ˆ˜์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ฉด ์•ˆ ๋œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, 6๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด 1, 2, 3, 4, 5, 6์ด๊ณ , ์ฃผ์–ด์ง„ ์—ฐ์‚ฐ์ž๊ฐ€ ๋ง์…ˆ(+) 2๊ฐœ, ๋บ„์…ˆ(-) 1๊ฐœ, ๊ณฑ์…ˆ(×) 1๊ฐœ, ๋‚˜๋ˆ—์…ˆ(÷) 1๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์ด 60๊ฐ€์ง€์˜ ์‹์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.1+2+3-4×5÷61÷2+3+4-5×61+2÷3×4-5+61÷2×3-4+5+6์‹์˜ ๊ณ„์‚ฐ์€ ์—ฐ์‚ฐ์ž ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ฌด์‹œํ•˜..
[Kotlin] ๋ฐฑ์ค€ 1978 ์†Œ์ˆ˜ ์ฐพ๊ธฐ ๋ฌธ์ œ์ฃผ์–ด์ง„ ์ˆ˜ N๊ฐœ ์ค‘์—์„œ ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ž…๋ ฅ์ฒซ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 100์ดํ•˜์ด๋‹ค. ๋‹ค์Œ์œผ๋กœ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ˆ˜๋Š” 1,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.์ถœ๋ ฅ์ฃผ์–ด์ง„ ์ˆ˜๋“ค ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.์˜ˆ์ œ ์ž…๋ ฅ 1 ๋ณต์‚ฌ41 3 5 7์˜ˆ์ œ ์ถœ๋ ฅ 1 ๋ณต์‚ฌ3 ํ’€์ด์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์€ "์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด" ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ํ•ต์‹ฌ์€ "์†Œ์ˆ˜์˜ ๋ฐฐ์ˆ˜๋Š” ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค" ์ด๋‹ค. 1๋ถ€ํ„ฐ ์ตœ๋Œ“๊ฐ’(์—ฌ๊ธฐ์„œ๋Š” 1000)๊นŒ์ง€ ๋ฏธ๋ฆฌ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•ด๋†“๋Š”๋‹ค.1~N์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ๋‘๋ฒˆ์˜ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ตœ๋Œ€ N๊นŒ์ง€ ์ˆ˜ํ–‰๋˜๋ฉฐ, O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. ์ฝ”ํ‹€๋ฆฐ ํ’€์ด ์ฝ”๋“œimport java.util.*fun main() = with(System.`in`.bufferedReade..
[Kotlin] ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•œ ์ฝ”ํ‹€๋ฆฐ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐฐ์—ด // ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” val array1 = arrayOf(1, 2, 3) val array2 = Array(3) {0} println(array1.joinToString()) // 1, 2, 3 println(array2.joinToString()) // 0, 0, 0 array2[0] = 1 // 0 ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ 1๋กœ ๋ณ€๊ฒฝ println(array2.joinToString()) // 1, 0, 0 // ArrayList ์ƒ์„ฑ val list = ArrayList() list.add(1) list.add(2) println(list) // 1, 2  ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉฐ, Mu..
[Kotlin] ๋ฐฑ์ค€ 1292 - ์‰ฝ๊ฒŒ ํ‘ธ๋Š” ๋ฌธ์ œ 1. ๋ฌธ์ œ๋™ํ˜ธ๋Š” ๋‚ด๋…„์— ์ดˆ๋“ฑํ•™๊ต๋ฅผ ์ž…ํ•™ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋™ํ˜ธ ์–ด๋จธ๋‹ˆ๋Š” ์ˆ˜ํ•™ ์„ ํ–‰ ํ•™์Šต์„ ์œ„ํ•ด ์‰ฝ๊ฒŒ ํ‘ธ๋Š” ๋ฌธ์ œ๋ฅผ ๋™ํ˜ธ์—๊ฒŒ ์ฃผ์—ˆ๋‹ค.์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1์„ ํ•œ ๋ฒˆ, 2๋ฅผ ๋‘ ๋ฒˆ, 3์„ ์„ธ ๋ฒˆ, ์ด๋Ÿฐ ์‹์œผ๋กœ 1 2 2 3 3 3 4 4 4 4 5 .. ์ด๋Ÿฌํ•œ ์ˆ˜์—ด์„ ๋งŒ๋“ค๊ณ  ์–ด๋Š ์ผ์ •ํ•œ ๊ตฌ๊ฐ„์„ ์ฃผ๋ฉด ๊ทธ ๊ตฌ๊ฐ„์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.ํ•˜์ง€๋งŒ ๋™ํ˜ธ๋Š” ํ˜„์žฌ ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š๋ผ ๋ฐ”์˜๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ๋™ํ˜ธ๋ฅผ ๋„์™€์ฃผ์ž.2. ์ž…๋ ฅ์ฒซ์งธ ์ค„์— ๊ตฌ๊ฐ„์˜ ์‹œ์ž‘๊ณผ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ A, B(1 ≤ A ≤ B ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฆ‰, ์ˆ˜์—ด์—์„œ A๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ B๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.3. ํ’€์ด (์ƒ๊ฐ์˜ ํ๋ฆ„)1. ๊ตฌ๊ฐ„์˜ ํ•ฉ -> 3~7 ๊ตฌ๊ฐ„์˜ ํ•ฉ์ด๋ž€, 7๊นŒ์ง€ ๋ˆ„์ ๋œ ํ•ฉ - 2๊นŒ์ง€ ๋ˆ„์ ๋œ ํ•ฉ๊ณผ ๋™์ผํ•˜๋‹ค2. 3~7๊ตฌ๊ฐ„์˜ ..
[Kotlin] ๋ฐฑ์ค€ 2693 - N๋ฒˆ์งธ ํฐ ์ˆ˜ ๋ฌธ์ œ๋ฐฐ์—ด A๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, N๋ฒˆ์งธ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.๋ฐฐ์—ด A์˜ ํฌ๊ธฐ๋Š” ํ•ญ์ƒ 10์ด๊ณ , ์ž์—ฐ์ˆ˜๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. N์€ ํ•ญ์ƒ 3์ด๋‹ค.์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 ≤ T ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๋ฐฐ์—ด A์˜ ์›์†Œ 10๊ฐœ๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ์ด ์›์†Œ๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.ํ’€์ด1. ์ˆซ์žํ˜• ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•œ๋‹ค.2. n๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ์ฐพ์•„๋‚ด๋Š”๊ฒƒ -> ์ •๋ ฌ์„ ๊ณ ๋ คํ•œ๋‹ค. -> ๊ธฐ๋ณธ 1ํšŒ ์ •๋ ฌ๋กœ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.3. ๋‚ด๋ถ€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(nlog(n))์œผ๋กœ ์‹œ๊ฐ„ ์•ˆ์œผ๋กœ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ฑ„ํƒํ•œ๋‹ค.์†Œ์Šคimport java.util.*fun main() = with(System.`in`..

728x90