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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(111)
[Kotlin] ๋ฐฑ์ค€ 2609 - ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•) ๋ฌธ์ œ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ฒซ์งธ ์ค„์—๋Š” ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๋‘˜์€ 10,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ ์‚ฌ์ด์— ํ•œ ์นธ์˜ ๊ณต๋ฐฑ์ด ์ฃผ์–ด์ง„๋‹ค.ํ’€์ด1. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” ํฐ๊ฐ’์„ ์ž‘์€๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ, ๋‚˜๋จธ์ง€๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š” ์ฒซ ์‹œ์ ์˜ ๊ฐ’์ด๋‹ค.2. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์•Œ๊ณ ์žˆ๋ƒ๋Š” ๋ฌธ์ œ์ด๋‹ค.์ฝ”๋“œimport java.util.*fun main() = with(Scanner(System.`in`)) { var n1: Int = nextInt() var n2: Int = nextInt() val m: Int // ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ // ์˜ˆ์™ธ์ฒ˜๋ฆฌ n1 > n2๋กœ ๋ณ€ํ™˜ if(n2 > n1){ val temp ..
[Kotlin] ๋ฐฑ์ค€ 2309 - ์ผ๊ณฑ ๋‚œ์Ÿ์ด ๋ฌธ์ œ์™•๋น„๋ฅผ ํ”ผํ•ด ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋“ค๊ณผ ํ•จ๊ป˜ ํ‰ํ™”๋กญ๊ฒŒ ์ƒํ™œํ•˜๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ์—๊ฒŒ ์œ„๊ธฐ๊ฐ€ ์ฐพ์•„์™”๋‹ค. ์ผ๊ณผ๋ฅผ ๋งˆ์น˜๊ณ  ๋Œ์•„์˜จ ๋‚œ์Ÿ์ด๊ฐ€ ์ผ๊ณฑ ๋ช…์ด ์•„๋‹Œ ์•„ํ™‰ ๋ช…์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค.์•„ํ™‰ ๋ช…์˜ ๋‚œ์Ÿ์ด๋Š” ๋ชจ๋‘ ์ž์‹ ์ด "๋ฐฑ์„ค ๊ณต์ฃผ์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด"์˜ ์ฃผ์ธ๊ณต์ด๋ผ๊ณ  ์ฃผ์žฅํ–ˆ๋‹ค. ๋›ฐ์–ด๋‚œ ์ˆ˜ํ•™์  ์ง๊ด€๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ๋Š”, ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค์˜ ํ•ฉ์ด 100์ด ๋จ์„ ๊ธฐ์–ตํ•ด ๋ƒˆ๋‹ค.์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฐฑ์„ค๊ณต์ฃผ๋ฅผ ๋„์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ฅผ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ€๋Šฅํ•œ ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.ํ’€์ด1. ํ•ฉ์ด 100์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š”๋‹ค.2. ๋‚œ์Ÿ์ด์˜ 7๋ช…์˜ ํ‚ค ์ดํ•ฉ์„ ๊ตฌํ•˜..
[Kotlin] ๋ฐฑ์ค€ 10870 - ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 5 ๋ฌธ์ œํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0๊ณผ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค. 0๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0์ด๊ณ , 1๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ 2๋ฒˆ์งธ ๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์•ž ๋‘ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์˜ ํ•ฉ์ด ๋œ๋‹ค.์ด๋ฅผ ์‹์œผ๋กœ ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n ≥ 2)๊ฐ€ ๋œ๋‹ค.n=17์ผ๋•Œ ๊นŒ์ง€ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ์จ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. n์€ 20๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0์ด๋‹ค.ํ’€์ด1. n๋ฒˆ์งธ ์ž๋ฆฌ์˜ ๊ฐ’์€ n-1๋ฒˆ์งธ, n-2๋ฒˆ์งธ ๊ฐ’์˜ ํ•ฉ์ด๋‹ค. -> n-1, n-2๋ฒˆ์งธ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. -> ๋ฐฐ์—ด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•ด์„œ ๊ฐ’์„ ์ €์žฅ..
[Kotlin] ๋ฐฐ์ค€ 3460 - ์ด์ง„์ˆ˜ ๋ฌธ์ œ์–‘์˜ ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ 1์˜ ์œ„์น˜๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ตœํ•˜์œ„ ๋น„ํŠธ(least significant bit, lsb)์˜ ์œ„์น˜๋Š” 0์ด๋‹ค.์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , n์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ T ≤ 10, 1 ≤ n ≤ 10^6)ํ’€์ด1. 2์ง„์ˆ˜์˜ ๊ฒฝ์šฐ, 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด(๋‚˜๋จธ์ง€๋Š” 1) ํ•ด๋‹น ์œ„์น˜ 1์˜ ๊ฐ’์ด ์˜จ๋‹ค.2. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋‹น n์˜ ๊ฐ’์„ 2๋กœ ๊ณ„์† ๋‚˜๋ˆˆ๋‹ค๋ฉด ์ตœ๋Œ€ log(n)๋ฒˆ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค. O(TlogN)3. T๋Š” ์ตœ๋Œ€ 10 n์˜ ์ตœ๋Œ“๊ฐ’์€ 10^6์œผ๋กœ ์ด๋ฏ€๋กœ ์ตœ๋Œ€ log(10^7)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ 2๋กœ ๊ณ„์† ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์„ ์ฑ„ํƒํ•œ๋‹ค.์†Œ์Šค ์ฝ”๋“œimport java.uti..
[Kotlin] ๋ฐฑ์ค€ 2501 - ์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ฌธ์ œ์–ด๋–ค ์ž์—ฐ์ˆ˜ p์™€ q๊ฐ€ ์žˆ์„ ๋•Œ, ๋งŒ์ผ p๋ฅผ q๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด q๋Š” p์˜ ์•ฝ์ˆ˜์ด๋‹ค. 6์„ ์˜ˆ๋กœ ๋“ค๋ฉด6 ÷ 1 = 6 … 06 ÷ 2 = 3 … 06 ÷ 3 = 2 … 06 ÷ 4 = 1 … 26 ÷ 5 = 1 … 16 ÷ 6 = 1 … 0๊ทธ๋ž˜์„œ 6์˜ ์•ฝ์ˆ˜๋Š” 1, 2, 3, 6, ์ด ๋„ค ๊ฐœ์ด๋‹ค.๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜ N๊ณผ K๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, N์˜ ์•ฝ์ˆ˜๋“ค ์ค‘ K๋ฒˆ์งธ๋กœ ์ž‘์€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. N์€ 1 ์ด์ƒ 10,000 ์ดํ•˜์ด๋‹ค. K๋Š” 1 ์ด์ƒ N ์ดํ•˜์ด๋‹ค.ํ’€์ด1. ๋‚˜๋จธ์ง€๊ฐ€ 0์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ์•ฝ์ˆ˜์ด๋‹ค.2. N์ด 10,000์ดํ•˜์ด๋‹ค -> ๋ฌด์‹ํ•œ ๋ฐฉ๋ฒ•์ธ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ชจ๋‘ ํ™•์ธํ•ด๋„ 1๋งŒ๋ถ„์˜ 1์ดˆ(1์–ต์— 1์ดˆ๋กœ ๊ฐ€์ •)3. ์‹œ๊ฐ„๋ณต..
[Kotlin] IDE์—†์ด ์˜จ๋ผ์ธ์œผ๋กœ Kotlin ์—ฐ์Šตํ•˜๊ธฐ ์˜จ๋ผ์ธ Kotlin ์—ฐ์Šต์žฅhttps://play.kotlinlang.org/ Kotlin Playground: Edit, Run, Share Kotlin Code Online play.kotlinlang.org์œ„ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ๋ณ„๋„์˜ IntelliJ์™€ ๊ฐ™์€ ๋ณ„๋„์˜ IDE ์—†์ด Kotlin ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฑ์ค€๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฐ์Šตํ•  ๋•Œ, IDE๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„๋„๋œ๋‹ค๋Š” ์ ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
[JS] setTimeout ์‚ฌ์šฉ๋ฒ•๊ณผ await / sleep ๋งŒ๋“ค๊ธฐ JavaScript์—์„œ setTimeout์€ ๋น„๋™๊ธฐ(async)๋กœ ํŠน์ • ์‹œ๊ฐ„ ํ›„์˜ ๋กœ์ง์„ ์ˆ˜ํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. setTimeout ์ˆ˜ํ–‰ ์˜ˆ์ œconsole.log('start');// async๋กœ 3์ดˆ(3,000ms)๋’ค์— {}์•ˆ์˜ ๋กœ์ง ์ˆ˜ํ–‰setTimeout(() => { console.log('call it after 3s');}, 3000);console.log('end') setTimeout ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ>>> start>>> end// ...์•ฝ 3์ดˆ ๋’ค...>>> call it after 3s  setTimeout์— await๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ setTimeout await ์‚ฌ์šฉconsole.log('start');// async๋กœ 3์ดˆ(3,000ms)๋’ค์— {}์•ˆ์˜ ๋กœ์ง ์ˆ˜ํ–‰await setTimeout(() ..
[Git Hook] pre commit ์œผ๋กœ ์žฅ์•  ์˜ˆ๋ฐฉํ•˜๊ธฐ(ft. husky, osascript) d์ตœ์‹  ์šด์˜ ์ค‘์ธ ์•ฑ์—์„œ ํŠน์ • ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋‹ค ์žฅ์• ๊ฐ€ ๋‚ฌ์—ˆ๋‹ค. ์ผ๋ถ€ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ํ™˜๊ฒฝ์ด ๋ถ„์‚ฐ๋˜๊ณ  ๋ณต์žกํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ๋†“์นœ ์ผ€์ด์Šค์˜€์—ˆ๋‹ค. ์ด ๋ถ€๋ถ„์„ ๊ฐœ์„ ํ•˜๊ณ  ๋น„์Šทํ•œ ์žฅ์• ๋ฅผ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด์„œ pre commit rule์„ ์ถ”๊ฐ€ํ•ด์„œ ํŠน์ • ํ‚ค์›Œ๋“œ๊ฐ€ ์†Œ์Šค์— ์ถ”๊ฐ€๋˜๋ฉด ์•ˆ๋‚ด๋ฅผ ์œ„ํ•œ ํŒ์—…์„ ๋„์šฐ๊ฒŒ ํ–ˆ๋‹ค. ๐Ÿค– ํ™˜๊ฒฝ๊ฐœ๋ฐœํŒ€์˜ ํ™˜๊ฒฝ์€ Mac์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  Husky plugin์ด ์„ค์น˜๋˜์–ด ์žˆ์—ˆ๋‹ค. git์€ ๊ฐœ๋ฐœ์ž๊ฐ€ commit์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, commit ์ด ์ˆ˜ํ–‰๋˜๊ธฐ ์ „์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰๋˜๊ฒŒ๋”ํ•˜๋Š” pre-commit ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.๋ฐฉ๋ฒ•์€ ํ”„๋กœ์ ํŠธ์˜ .git/ ํ•˜์œ„์—  "pre-commit"์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.ํ•˜์ง€๋งŒ, git์—์„œ ์ œ๊ณตํ•˜๋Š” pre-commit์˜ ๊ฒฝ์šฐ, ๊ฐœ์ธ ๋กœ์ปฌ..

728x90