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

IntelliJ์—์„œ JUnit4 ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ๋ฐฉ๋ฒ•

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ธฐ๋Šฅ ์ฝ”๋“œ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์‹œ๊ฐ„์— ์ซ“๊ธฐ๋‹ค ๋ณด๋‹ˆ main ํ•จ์ˆ˜์—์„œ ์ง์ ‘ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค . . ๐Ÿ™„ ์ด๋ฒˆ ๊ฒจ์šธํŠน๊ฐ•์„ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์งœ๋Š” ์Šต๊ด€์„ ๋“ค์—ฌ๋ณด๋ ค๊ณ  ํ•œ๋‹ค!(์•„๋‹ˆ๋ฉด, ์„ ์ƒ๋‹˜์ด ๋จธ์ง€๋ฅผ ์•ˆํ•ด์ฃผ์‹ ๋‹ค . . ๐Ÿ˜…) Kotlin ํ…Œ์ŠคํŠธ ๋„๊ตฌJUnit4: ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜์–ด ์˜จ ๋„๊ตฌJUnit5: ์ตœ์‹  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๊ฐœ์„ ๋œ ๋ฒ„์ „Kotest: Kotlin ์นœํ™”์ ์ธ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์•ˆ๋“œ๋กœ์ด๋“œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ๋Š” JUnit4๊ฐ€ ์˜ค๋žœ ๊ธฐ๊ฐ„ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” JUnit4๋ฅผ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค.JUnit4 ์ถ”๊ฐ€ ํ•˜๊ธฐ2024๋…„ 12์›” ํ˜„์žฌ ๊ธฐ์ค€์œผ๋กœ K..

Kotlin 2024.12.22

SeSAC ์ƒˆ์‹น ๊ธˆ์ฒœ 4๊ธฐ ํ˜„์—… ์ค‘์‹ฌ Kotlin & Jetpack ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์ž ๊ณผ์ • ํ›„๊ธฐ

๐ŸŒฑ ์ƒˆ์‹น(SeSAC) ์ด๋ž€?์„œ์šธํŠน๋ณ„์‹œ์™€ ์„œ์šธ๊ฒฝ์ œ์ง„ํฅ์›(SBA)์—์„œ SWํ˜์‹  ์ธ์žฌ์˜ ์–‘์„ฑ์„ ์œ„ํ•ด ์กฐ์„ฑํ•œ ์ฒญ๋…„์ทจ์—…์‚ฌ๊ด€ํ•™๊ต๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ์ฒญ๋…„๋“ค์ด 'SW๊ฐœ๋ฐœ์ž๋กœ ๋ฐ๋ท”' ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ต์œก ํ”„๋กœ๊ทธ๋žจ ๐ŸŒฑ ์„ ๋ฐœ ๊ณผ์ •์„ ๋ฐœ ๊ธฐ์ค€IT ๊ธฐ์ดˆ์ง€์‹ ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ดํ•ด๊ฐ€ ์žˆ๋Š” ๋ถ„ (์–ธ์–ด ๋ฌด๊ด€)์ทจ์ฐฝ์—…์˜์ง€ ์ค‘์  ํ‰๊ฐ€, ํ•™์Šต ๋ฐ ์ˆ˜๋ฃŒ ์˜์ง€์„ ๋ฐœ ์ ˆ์ฐจ์ง€์›์„œ ๊ธฐ๋ฐ˜ ์ž๊ฒฉ ํ™•์ธ ์„œ๋ฅ˜ ์‹ฌ์‚ฌ๋ ˆ๋ฒจ ํ…Œ์ŠคํŠธ (ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ ์ง€์‹)์˜คํ”„๋ผ์ธ ๋Œ€๋ฉด ๋ฉด์ ‘์ตœ์ข… ํ•ฉ๊ฒฉ์ž ๋ฐœํ‘œ ๐ŸŒฑ ์ง€์› ๋™๊ธฐํ‡ด์‚ฌ๋ฅผ ํ•˜๊ณ  ์ฝ”ํ‹€๋ฆฐ๊ณผ ์•ˆ๋“œ๋กœ์ด๋“œ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ง€์‹ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค.์†Œ์ˆ˜์ •์˜ˆ(10๋ช…) ๊ณผ์ • + ์˜คํ”„๋ผ์ธ ๊ณผ์ •์ด์–ด์„œ ์ƒํ™œ ํŒจํ„ด์ด ํ’€์–ด์ง€์ง€ ์•Š์„ ๊ฒƒ . . ๊ฐ™์•˜๋‹ค !๋‹ค์–‘ํ•œ ์ทจ์—… ์ง€์› ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•œ๋‹ค. ๐ŸŒฑ ์„ ๋ฐœ ๊ณผ์ •์„œ๋ฅ˜ ์ „ํ˜•์„œ์šธ์‹œ์— ๊ฑฐ์ฃผํ•˜๋Š” ์‹œ๋ฏผ์ด์–ด์•ผ..

๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„ ์›นใƒป๋ชจ๋ฐ”์ผ 9๊ธฐ ์ฑŒ๋ฆฐ์ง€ 3์ฃผ์ฐจ ํšŒ๊ณ 

์ž๋งŒํ•˜์ง€ ๋ง์ž.  ๋‚˜๋ฆ„๋Œ€๋กœ ์ฑŒ๋ฆฐ์ง€ ์ƒํ™œ์— ์ต์ˆ™ํ•ด์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.ํ•˜์ง€๋งŒ, 3์ฃผ ์ฐจ์™€ 4์ฃผ ์ฐจ์˜ ์‹œ๊ฐ„ํ‘œ๋ฅผ ๋ณด๊ณ  1, 2์ฃผ ์ฐจ์™€๋Š” ํ•™์Šต๋ถ„์œ„๊ธฐ๊ฐ€ ๋‹ค๋ฅผ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ–ˆ๋‹ค.์™œ๋ƒํ•˜๋ฉด ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์•„์กŒ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  ์†”์งํžˆ, ๋‚œ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ž์‹ ์žˆ์—ˆ๋‹ค. ์Šคํ„ฐ๋””์—์„œ ์ง์ ‘ ๋“œ๋ผ์ด๋ฒ„์™€ ๋‚ด๋น„๊ฒŒ์ดํ„ฐ ์—ญํ• ์„ ๋‚˜๋ˆ ์„œ ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒฝํ—˜๋„ ์žˆ๊ณ ,ํšŒ์‚ฌ์—์„œ๋„ ๊ฑฐ์˜ ํ•˜๋Š” ์ผ์ด ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ฐ€๊นŒ์› ๊ธฐ ๋•Œ๋ฌธ์— . . .  ํ•˜์ง€๋งŒ์ด๋ฒˆ์ฃผ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ,๋‚ด ๋Ÿฌ๋‹ ์ปค๋ธŒ์™€ ์ดํ•ด๋ ฅ์ด ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฑธ ๋Š๊ผˆ๋‹ค. ๋ฏธ์…˜ ๋‚ด์šฉ์„ ์ƒ์„ธํžˆ ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ,๋‚˜๋Š” ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ž์‹ ์žˆ๋Š”๊ฒŒ ์•„๋‹Œ,์ž๋งŒํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋Š” ๊ฑธ ํ™•์‹คํžˆ ๊นจ๋‹ฌ์•˜๋‹ค.  ์ž์‹ ๊ฐ๊ณผ ์ž๋งŒ์€ ํ•œ ๋— ์ฐจ์ด์ธ ๊ฒƒ ๊ฐ™๋‹ค.๋‚œ ์ž์‹ ๊ฐ์ด ์•„๋‹Œ ์ž๋งŒ์„ ๊ฐ–๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ์ž๋งŒํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์€ ..

๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„ ์›นใƒป๋ชจ๋ฐ”์ผ 9๊ธฐ ์ฑŒ๋ฆฐ์ง€ 2์ฃผ์ฐจ ํšŒ๊ณ 

๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์บ ํ”„์˜ ์ฒ ํ•™1. ์Šค์Šค๋กœ๊ฐ€ ํ•™์Šต์˜ ์ฃผ์ฒด๊ฐ€ ๋œ๋‹ค.2. ์ปค๋ฎค๋‹ˆํ‹ฐ ์•ˆ์—์„œ ์„ฑ์žฅํ•œ๋‹ค.  ๋‹ค์–‘ํ•œ ํ™œ๋™์„ ํ†ตํ•ด์ ์  ๋งŽ์€ ์บ ํผ๋“ค์„ ๋งŒ๋‚˜๋ฉด์„œ,์ปค๋ฎค๋‹ˆํ‹ฐ ํ•™์Šต์˜ ํšจ๊ณผ๋ฅผ ์ œ๋Œ€๋กœ ๋Š๋ผ๊ณ  ์žˆ๋‹ค! ํ˜ผ์ž ๋ฏธ์…˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ,1์ฃผ ์ฐจ์— ๋น„ํ•ด, ์ฝ”์–ด ํƒ€์ž„์— ์ง‘์ค‘ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋‚˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค . . ๊ทธ ํ›„,์บ ํผ๋“ค๊ณผ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„๋ฉด์„œ ๊ฐ™์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š”๋ฐ,์‹œ๊ฐ„ ๊ฐ€๋Š” ์ค„ ๋ชจ๋ฅด๊ณ  ์™„์ „ํžˆ ๋ชฐ์ž…ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค! ๋‚˜ ํ˜ผ์ž ๊ณต๋ถ€ํ•  ๋• ๋จธ๋ฆฌ์— ์•ˆ ๋“ค์–ด์˜ค๋˜ ์ง€์‹๋“ค์ด๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ดํ•ด์‹œํ‚ค๊ณ  ์„ค๋“์‹œ์ผœ์•ผ ํ•˜๋‹ˆ๊นŒ ์„ค๋ช…์„ ํ•ด์•ผ ํ–ˆ๊ณ ,๊ทธ ๊ณผ์ •์—์„œ CS ๊ฐœ๋…๋“ค์ด ํ•˜๋‚˜๋‘˜์”ฉ ์ดํ•ด๊ฐ€ ๋˜์—ˆ๋‹ค . . ๐Ÿฅน์ปค๋ฎค๋‹ˆํ‹ฐ ์•ˆ์—์„œ ์„ฑ์žฅํ•˜๋Š” ๊ฒƒ์ด ์ด๋Ÿฐ ๊ฑฐ๊ตฌ๋‚˜๋ฅผ ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค.  ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ข‹์€ ๋ฐ‘๊ฑฐ๋ฆ„์„ ๋‹ค์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋ฟŒ๋“ฏํ•˜์ง€๋งŒ,๋ฒŒ์จ ์ฑŒ๋ฆฐ์ง€๊ฐ€ ์ ˆ๋ฐ˜์ด๋‚˜ ์ง€๋‚˜๊ฐ€์„œ ์•„์‰ฝ๋‹ค . ...

์ฝ”ํ‹€๋ฆฐ Kotlin 2์ฐจ์› ๋ฐฐ์—ด ์ถœ๋ ฅํ•˜๊ธฐ

์ฝ”ํ‹€๋ฆฐ Kotlin 2์ฐจ์› ๋ฐฐ์—ด ์ถœ๋ ฅํ•˜๊ธฐ1. 2์ฐจ์› ๋ฐฐ์—ด์„ ์„ ์–ธval array = arrayOf( intArrayOf(1, 2, 3), intArrayOf(4, 5, 6), intArrayOf(7, 8, 9)) 2. 2์ฐจ์› ๋ฐฐ์—ด ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ ๊ตฌํ˜„private fun printArray(array: Array) { val sb = StringBuilder() for (row in array) { for (element in row) { sb.append(element).append(" ") } sb.append("\n") } println(sb.toString())} 3. ์ถœ๋ ฅ ํ™•์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋ฉด์„œ์ข…์ข… ๋ถˆํŽธ..

Kotlin 2024.07.24

์•ˆ๋“œ๋กœ์ด๋“œ Android ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ Flow ์ดํ•ดํ•˜๊ธฐ

ํ•ซ ์ŠคํŠธ๋ฆผ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ๋น„ํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์›์†Œ๋ฅผ ์ƒ์„ฑCoroutines Channel์ปฌ๋ ‰์…˜(List, Set) ์ฝœ๋“œ ์ŠคํŠธ๋ฆผ์š”์ฒญ์ด ์žˆ์„ ๋•Œ๋งŒ ์ž‘์—…์„ ์ˆ˜ํ–‰Sequence, StreamFlow, RxJava ์ŠคํŠธ๋ฆผ FlowFlow๋ฅผ ๋ฌด๊ธฐ ์•„์ดํ…œ ๊ณต์žฅ ์•ˆ์— ์žˆ๋Š” ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ๋ผ๊ณ  ์ƒ๊ฐ๐Ÿ’จ๊ฐ๊ฐ์˜ ์•„์ดํ…œ๋“ค์„ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ์ƒ๊ฐ๋ฌด๊ธฐ ์ €์žฅ๊ณ ์—์„œ ๋ฌด๊ธฐ(๋ฐ์ดํ„ฐ)๋“ค์„ ๋žœ๋ค ํ•˜๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ ์ƒํ™ฉ๋“ค์„ ์ €์žฅํ•ด ๋ณด์ž!sealed class Weapon { class Sword(): Weapon() class Staff(): Weapon() class SpellBook(): Weapon()} Flow ์ƒ์„ฑval weaponProducer: FlowFlow๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• → ์ฝ”๋ฃจํ‹ด ์ฑ„๋„์˜ prod..

Android 2024.07.21

๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„ ์›นใƒป๋ชจ๋ฐ”์ผ 9๊ธฐ ์ฑŒ๋ฆฐ์ง€ 1์ฃผ์ฐจ ํšŒ๊ณ 

์ €๋ฒˆ์ฃผ์— ํ‡ด์‚ฌํ•˜๊ณ ์ด๋ฒˆ์ฃผ ์›”์š”์ผ๋ถ€ํ„ฐ ๋ฐ”๋กœ ๋ถ€์ŠคํŠธ์บ ํ”„ ์ฑŒ๋ฆฐ์ง€ ๊ณผ์ •์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ์™€์ฐจ๋ผ๋ฆฌ ๋‹ค์‹œ ํšŒ์‚ฌ๊ฐˆ๋ž˜   ๋„ˆ๋ฌด ํž˜๋“ค๋‹ค.. ํ•˜๋ฃจ์— ๋งŽ์ด ์ž๋ฉด 5์‹œ๊ฐ„ ์ž๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋งค์ผ๋งค์ผ์ด ๋ง ๊ทธ๋Œ€๋กœ ์ฑŒ๋ฆฐ์ง€. ๋„์ „์ด๋‹ค.์ž๊ธฐ ์ฃผ๋„์ ์œผ๋กœ ํ•™์Šตํ•˜๋Š” ๊ฒŒ ์ด๋ ‡๊ฒŒ ์–ด๋ ค์šด ๊ฑด์ง€ ๋ชฐ๋ž๋‹ค. ๊ทธ๋ž˜๋„ ํ•จ๊ป˜ํ•˜๋Š” ์บ ํผ๋“ค์ด ์žˆ์–ด์„œ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ์—ˆ๋‹ค..์ •๋ง ๋‹ค๋“ค ์—ด์ •์ ์ด๊ณ , ์„ฑ์žฅ ์š•์‹ฌ์ด ๊ฐ€๋“ํ•ด์„œ ๋งค์ผ ์ž๊ทน์„ ๋ฐ›๋Š”๋‹ค.๐Ÿ”ฅ ๊ทผ๋ฐ ์ฒด๋ ฅ์ด ๋”ธ๋ฆฌ๋Š” ๊ฑด ์–ด์ฉ” ์ˆ˜ ์—†๋‚˜ ๋ณด๋‹ค..๋‹ค์Œ ์ฃผ๋ถ€ํ„ฐ๋Š” ์šด๋™์„ ๊ผญ ๋ณ‘ํ–‰ํ•ด์•ผ์ง€.๐Ÿƒ

Kotlin ์ฝ”ํ‹€๋ฆฐ ๋ฐฑ์ค€ 25344 ํ–‰์„ฑ ์ •๋ ฌ

๋ฌธ์ œํ–‰์„ฑ ์ •๋ ฌ์€ ํ–‰์„ฑ๋“ค์ด ์ผ์ง์„ ์œผ๋กœ ์ •๋ ฌ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ˜„์ƒ์ด๋‹ค. ์ตœ๊ทผ ์ง€๊ตฌ์—์„œ๋„ 18๋…„ ๋งŒ์— ํ–‰์„ฑ ์ •๋ ฌ์„ ๊ด€์ธกํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.ํ‰ํ–‰์„ธ๊ณ„์˜ ์ค€์„œ๊ฐ€ ์‚ด๊ณ  ์žˆ๋Š” ์ง€๊ตฌ์—์„œ๋Š” $N$๊ฐœ์˜ ํ–‰์„ฑ์„ ๊ด€์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค€์„œ๋Š” ์–ผ๋งˆ๋‚˜ ๊ธฐ๋‹ค๋ ค์•ผ $N$๊ฐœ์˜ ํ–‰์„ฑ์ด ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋˜๋Š” ์ˆœ๊ฐ„์„ ๋ณผ ์ˆ˜ ์žˆ์„์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.ํ•˜๋Š˜์„ ์—ด์‹ฌํžˆ ๊ด€์ฐฐํ•œ ๊ฒฐ๊ณผ, ์ค€์„œ๋Š” ๋‹ค์Œ ์‚ฌ์‹ค๋“ค์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.โ€Š๐‘๊ฐœ์˜ ํ–‰์„ฑ์ด ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋˜๋Š” ์ˆœ๊ฐ„์ด ์กด์žฌํ•œ๋‹ค.ํ–‰์„ฑ ์ •๋ ฌ์˜ ์ฃผ๊ธฐ๋Š” $10^{9}$์ดˆ ์ดํ•˜์ด๋‹ค.1, 2, 3๋ฒˆ์งธ ํ–‰์„ฑ์€ $T_1$์ดˆ๋งˆ๋‹ค ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ๋‹ค.โ€Š2, 3, 4๋ฒˆ์งธ ํ–‰์„ฑ์€ $T_2$์ดˆ๋งˆ๋‹ค ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ๋‹ค....$N-2, N-1, N$๋ฒˆ์งธ ํ–‰์„ฑ์€ $T_{N-2}$์ดˆ๋งˆ๋‹ค ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ๋‹ค.์ค€์„œ๋ฅผ ์œ„ํ•ด ํ–‰์„ฑ ์ •๋ ฌ์˜ ์ฃผ๊ธฐ๋ฅผ ๊ตฌํ•ด์ฃผ์ž. ์ž…๋ ฅ์ฒซ์งธ ์ค„์— ์ •๋ ฌ๋˜..

Algorithm 2024.07.15

์ฝ”ํ‹€๋ฆฐ Kotlin java.util.ConcurrentModificationException ์—๋Ÿฌ

๊ทธ๋ ‡๋‹ค. ์ด ๊ธ€์€ ๋ฐฉ๊ธˆ ์ฝ”ํ…Œ์—์„œ ์ € ์—๋Ÿฌ๋ฅผ ๋ณด๊ณ  ์ฒ˜์Œ ๋ณด๋Š” ์—๋Ÿฌ๋ผ ๋‹นํ™ฉํ–ˆ๊ณ , ๋กœ์ง์€ ๋‹ค ์งฐ๋Š”๋ฐ ์ €๊ฒƒ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ๋ชป ํ’€์–ด์„œ ๋ถ„๋…ธ์— ์ฐจ์„œ ์“ฐ๋Š” ๊ธ€์ด๋‹ค.  java.util.ConcurrentModificationException ์ด๋ž€^^!!์ฃผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๋™์‹œ์— ์ˆ˜์ •ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ด๋‹ค. ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ์— list๋ฅผ for๋ฌธ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด์„œ, tempList = list๋ฅผ ์„ ์–ธํ–ˆ๋Š”๋ฐ,์ด๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค..๐Ÿ˜ต ์ดํ•ด๊ฐ€ ์‰ฝ๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ณด์ž! list ๋งจ ์•ž์˜ element๋ฅผ ๋งจ๋’ค๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋กœ์ง์ด๋‹ค.fun solution(list: MutableList) { for ((i, element) in list.withIndex()) { val tempList = list ..

Kotlin 2024.07.11

2024๋…„ 5์›” ํšŒ๊ณ 

์›๋ž˜ ํšŒ๊ณ ๋ก์„ ์ž˜ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.๋‚ด ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒŒ ์กฐ๊ธˆ ์‘ฅ์Šค๋Ÿฝ๊ธฐ๋„ ํ•˜๊ณ , ์–ด์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๊ทธ๋ž˜๋„ 2024๋…„ 5์›”์€ ๋‚˜์—๊ฒŒ ํŠน๋ณ„ํ•œ ๋‹ฌ์ด์—ˆ๊ธฐ์— ์จ๋ณด๊ณ ์ž ํ•œ๋‹ค. ๐Ÿƒ์ด์ง ์ค€๋น„์‚ฌ์‹ค ์ด์ง์„ ์กฐ๊ธˆ์”ฉ ์ค€๋น„ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.๊ทธ๋Ÿฌ๋‹ค ์šด ์ข‹๊ฒŒ ๋งํฌ๋“œ์ธ์œผ๋กœ ์žก์˜คํผ๊ฐ€ ์™”๊ณ , ์Šน๋‚™ ํ›„ ํฐ์Šคํฌ๋ฆฌ๋‹์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ์™ธ๊ตญ๊ณ„ ๊ธฐ์—…์ด๋ผ ์ฒ˜์Œ ๊ฒฝํ—˜ํ•ด ๋ณด๋Š” ์ฑ„์šฉ ์ „ํ˜•๋„ ์žˆ์—ˆ๊ณ , ๋Œ€๋ถ€๋ถ„ ์˜์–ด๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค.์œ ๋ช…ํ•œ ํšŒ์‚ฌ์ธ๋ฐ ํ›„๊ธฐ๊ฐ€ ๋ณ„๋กœ ์—†์–ด์„œ ์ค€๋น„ํ•  ๋•Œ ํž˜๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์—,์ด์— ๋Œ€ํ•œ ๊ธ€์€ ๋”ฐ๋กœ ์˜ฌ๋ฆด ๊ฒƒ์ด๋‹ค. ์šด ์ข‹๊ฒŒ ์ตœ์ข… ๋ฉด์ ‘์„ ๋ณด๊ฒŒ ๋˜์—ˆ์ง€๋งŒ, ๊ฒฐ๊ตญ ํƒˆ๋ฝํ•˜๊ณ  ๋ง์•˜๋‹ค.๋ฉ˜ํƒˆ์ด ์—„์ฒญ ๊นจ์ ธ์„œ(์œ ๋ฆฌ๋ฉ˜ํƒˆ) ํšŒ์‚ฌ๋„ ์•ˆ ๊ฐ€๊ณ  ๋ฉฐ์น  ๋™์•ˆ ์ง‘์— ๋ฐ•ํ˜€์žˆ์—ˆ๋‹ค.๐Ÿ˜ญ  โ˜•์ปคํ”ผ์ฑ—๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•œ ์Šคํƒ€ํŠธ์—…์—์„œ ๊ฐ์‚ฌํ•˜๊ฒŒ๋„, ๋‚˜์—๊ฒŒ ์ปคํ”ผ์ฑ—์„ ์ œ์•ˆํ•ด ์ฃผ์…จ๋‹ค.์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๋™์•ˆ ์—„์ฒญ ํšก์„ค์ˆ˜..