๐ŸŽ’ ๊ณต๋ถ€

๐ŸŽ’ ๊ณต๋ถ€

RecyclerView ๊ตฌ์„ฑ์š”์†Œ

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ์—๋Š” RecyclerView๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. RecyclerView ๊ตฌ์„ฑ์š”์†Œ RecyclerView: ๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๋ทฐ๊ฐ€ ํฌํ•จ๋œ ViewGroup. ๋ทฐ ์ž์ฒด๋ฅผ ๋œปํ•˜๋ฉฐ, ๋ ˆ์ด์•„์›ƒ์— RecyclerView๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. RecyclerView.Adapter: ๋ทฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. RecyclerView.ViewHolder: ๋ชฉ๋ก์˜ ๊ฐ ๊ฐœ๋ณ„ ์š”์†Œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐํ™€๋”์˜ ์ƒ์„ฑ ์‹œ์ ์—๋Š” ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ณ , ์ƒ์„ฑ ์ดํ›„ RecyclerView๊ฐ€ ๋ทฐํ™€๋”๋ฅผ ๋ฐ์ดํ„ฐ์— ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. LayoutManager: ๋ชฉ๋ก์˜ ๊ฐœ๋ณ„ ์š”์†Œ๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. 1. RecyclerView ๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๋ทฐ๊ฐ€ ํฌํ•จ๋œ ViewGroup ์‹ค์ œ ํ™”๋ฉด์—์„œ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋˜..

๐ŸŽ’ ๊ณต๋ถ€

RecyclerView์— ๋Œ€ํ•˜์—ฌ (feat. ListView)

์•ˆ๋…•ํ•˜์„ธ์š”. RecyclerView์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌํ•˜๋‹ค ๋ณด๋‹ˆ ๊ธ€์ด ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ ์‹œ๋ฆฌ์ฆˆ๋กœ ๋‚˜๋ˆ ์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•ด์š”. ํ˜„์žฌ ๊ณ„ํš์œผ๋กœ๋Š” ์•ฝ 4ํŽธ์˜ ์‹œ๋ฆฌ์ฆˆ๋กœ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ ์ค‘๊ฐ„์— ์ƒ๋žต๋˜๊ฑฐ๋‚˜ ๋Š˜์–ด๋‚  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. RecyclerView์— ๋Œ€ํ•˜์—ฌ (feat. ListView) RecyclerView ๊ตฌ์„ฑ์š”์†Œ RecyclerView Deep Dive (feat. RecyclerView.java) RecyclerView CustomView ์ผ์ฃผ์ผ์— ํ•˜๋‚˜์”ฉ์€ ์“ฐ๊ฒ ์ง€...๋ผ๋Š” ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. RecyclerView RecyclerView | Android Developers androidx.appsearch.builtintypes.properties develo..

๐ŸŽ’ ๊ณต๋ถ€/์•Œ๊ณ ๋ฆฌ์ฆ˜

LIS

LIS LIS; Longest Increasing Subsequence ์ตœ์žฅ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด original array์˜ ์ผ๋ถ€ ์›์†Œ๋ฅผ ๊ณจ๋ผ๋‚ด์„œ ๋งŒ๋“  ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘, ๊ฐ ์›์†Œ๊ฐ€ ์ด์ „ ์›์†Œ๋ณด๋‹ค ํฌ๋‹ค๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ณ , ๊ทธ ๊ธธ์ด๊ฐ€ ์ตœ๋Œ€์ธ ๋ถ€๋ถ„ ์ˆ˜์—ด LIS ๊ธธ์ด ๊ตฌํ•˜๊ธฐ 1. DP - O(N^2) length๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ํ•  ๋•Œ, DP๋ฅผ ํ™œ์šฉํ•˜์—ฌ LIS์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. length[i]: i๋ฒˆ์งธ ์ธ๋ฑ์Šค์—์„œ ๋๋‚˜๋Š” ์ตœ์žฅ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด ์ด๋•Œ length.size == array.size ์ด๋‹ค. for (i in array.indices) { length[i] = 1 for (j in 0 until i) { if (array[j] < array[i]) length[i] = max(length[i..

๐ŸŽ’ ๊ณต๋ถ€/๐Ÿ‘Š ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ Kotlin ํ’€์ด

๋ฐฑ์ค€ ๊ผฌ์ธ ์ „๊นƒ์ค„ - boj1365

1365๋ฒˆ: ๊ผฌ์ธ ์ „๊นƒ์ค„ ์ฒซ ์ค„์— ์ „๋ด‡๋Œ€์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง€๊ณ , ์ด์–ด์„œ N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜๊ฐ€ N๊ฐœ ์ฃผ์–ด์ง„๋‹ค. i๋ฒˆ์งธ ์ค„์— ์ž…๋ ฅ๋˜๋Š” ์ž์—ฐ์ˆ˜๋Š” ๊ธธ ์™ผ์ชฝ์— i๋ฒˆ์งธ ์ „๋ด‡๋Œ€์™€ ์—ฐ๊ฒฐ๋œ ๊ธธ ์˜ค๋ฅธํŽธ์˜ ์ „๋ด‡๋Œ€๊ฐ€ www.acmicpc.net ์•ˆ๋…•ํ•˜์„ธ์š”. ๋ฐฑ์ค€์˜ ๊ผฌ์ธ ์ „๊นƒ์ค„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ตœ์žฅ ์ฆ๊ฐ€ ์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ๋Œ๋ ค๋Œ๋ ค ๋ฌผ์–ด๋ณด๋Š” ๋ฌธ์ œ์—์š”. ์ด ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋งŒ ํ•ด๋„ LIS์˜ ๊ธธ์ด ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ DP, ์ฆ‰ O(N^2)์ธ ๋ฐฉ๋ฒ•๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ์–ด์„œ 10๋งŒ...์ด๋ผ๋Š” ์ž…๋ ฅ๊ฐ’์„ ๋ณด๊ณ  ๋ญ”๊ฐ€ ์ด์ƒํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณฑ์…ˆ์ด ํ—ท๊ฐˆ๋ ค์„œ ๊ณ„์‚ฐ๊ธฐ๋กœ 10๋งŒ*10๋งŒ์„ ํ•ด ๋ดค์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชป ํ‘ธ๋Š” ๋ฌธ์ œ๋‹ค ์‹ถ์–ด ํ˜ธ๋‹ค๋‹ฅ ๊ตฌ๊ธ€๋ง์œผ๋กœ ์ •๋‹ต ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ๊ณ  ๋‚˜๋‹ˆ ์ œ๋ฒ• ์‰ฌ์šด ๋ฌธ์ œ์˜€์–ด..

๐ŸŽ’ ๊ณต๋ถ€/๐Ÿ“• Kotlin

Kotlin์—์„œ Set์— Array ๋„ฃ๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”. ์ง€๋‚œ๋ฒˆ์— kotlin์˜ Equality์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ์•„๋ž˜ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. Kotlin์˜ Equality, == vs === Equality | Kotlin kotlinlang.org ๊ณต์‹๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด kotlin์—๋Š” ๋‘ ๊ฐ€์ง€ ํƒ€์ž…์˜ Equality๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. Structural equality์™€ Referential equality์ธ๋ฐ์š”. ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด Structural equality๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๊ณ , Ref dev-sia.tistory.com Structural equality์™€ Referential equality, ๋™์ผ์„ฑ๊ณผ ๋™๋“ฑ์„ฑ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋ฉด์„œ == ์—ฐ์‚ฐ์ž์™€ === ์—ฐ์‚ฐ์ž์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  equals๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ ๋™์ผ์„ฑ๊ณผ ๋™๋“ฑ์„ฑ์„ ๋น„..

dev_sia
'๐ŸŽ’ ๊ณต๋ถ€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก