~ Today I Learned ~
โ๏ธ ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด (์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ, ๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด)
โ๏ธ Kotlin ๋ฌธ๋ฒ ์ข
ํฉ๋ฐ ์๊ฐ 5์ฃผ์ฐจ ๋ฐ ์ ๋ฆฌ
โ๏ธ ํค์ค์คํฌ ๊ณผ์ ์์
X๊ณํ์คํจX ๊ณ์ฐ๊ธฐ ๊ณผ์ ๋ค์ ์์ฑ ๋ฐ git ์ ๋ก๋
1. ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด (2๋ฌธ์ )
- ์ค๋ ๋ฌธ์ ๊ฐ ์ ๋ ์ฌ์ด๊ฑด์ง, ์๋๋ฉด ์๊ณ ๋ฆฌ์ฆ ํ์ด์ ์ต์ํด์ง๊ฑด์ง ๋ชฐ๋ผ๋ ์๊ฐ๋ณด๋ค ํ์ด๊ฐ ์์ํด์ 2๊ฐ๋ฅผ ํ์๋ค.
- int ์์๋ฅผ ๊ฐ์ง๋ ๋ฌด์์์ Array๋ฅผ ์ด๊ธฐํํ ๋ ์ด๋ ต๊ฒ ์๊ฐํ ๊ฑฐ ์์ด ๊ทธ๋ฅ var ๋ฐฐ์ด๋ช = intArrayOf() ํ๋ฉด ๋๋ค.
- plus ํจ์์, ๋ฐฐ์ด์ ๊บผ๋ด์ค๋ for๋ฌธ์ ์๋ชป ์์ฑํ ๋ถ๋ถ์ ๋ํด์๋ ์๊ฒ ๋์๋ค.
- ๋ฐฐ์ด ์ค ํน์ ์์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋ ๋ฒ์ ์๋์ ๊ฐ๋ค.
- indexOf() : ๋ฐฐ์ด๋ช .indexOf(์์๋ช )
- withIndex() : ๋ฐฐ์ด๋ช .withIndex() .first { ์์๋ช == it.value } .index
- find() : ๋ฐฐ์ด๋ช .indices.find { ๋ฐฐ์ด๋ช [it] == ์์๋ช }
- ๋ฃจํ๋ฅผ ์ฌ์ฉํด ์ฐพ๊ณ ์๋ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ
2. Kotlin ๋ฌธ๋ฒ ์ข ํฉ๋ฐ ์๊ฐ 5์ฃผ์ฐจ ๋ฐ ์ ๋ฆฌ
- ์ ์ฉํ ๊ธฐ๋ฅ(ํ ๋ณํ, ์๋ฃํ ํ์ ํ์ธ is, ๋ณต์ ๋ฐ์ดํฐ ๋ฆฌํด Pair/Triple, Scope Functions let/with/also/apply/run)
- ํ์ฅ ํจ์ (์ธ๋ถ์์ ๊ธฐ์กด ํด๋์ค์ ๋ฉ์๋ ์ถ๊ฐ, ์ค๋ฒ๋ผ์ด๋ ๋ถ๊ฐ)
- ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ (๊ฒฐ๊ณผ ๋ฐํ์ ์๊ด ์์ด ๋์ ์ํ)
- ์ฐ๋ ๋ (๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ผ์ข , ํ๋ก์ธ์ค๋ณด๋ค ์์ ๋จ์)
- ์ฝ๋ฃจํด (๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ผ์ข , ์ฐ๋ ๋๋ณด๋ค ์๊ฒ ๊ฒฝ๋ํ ํ ๊ฒ, ๊ตฌ๊ธ ๊ถ์ฅ)
5์ฃผ์ฐจ๊น์ง ๋ชจ๋ ์๊ฐ ๋ค, ๊ด๋ จ ๋ด์ฉ์ ๊ธฐ์กด ์ฝํ๋ฆฐ ๋ฌธ๋ฒ ๊ฒ์๊ธ์ ์ถ๊ฐ ๋ฐ ๋จ๊ถํํ์๋ค.
ํนํ ๋ด์ฉ์ ๋ง์ด ์์ ํ ๋ถ๋ถ์ '์ค์ฝํ ํจ์' ์ด๋ค.
๋์์ฑ์ ์ํ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ (์ฐ๋ ๋, ์ฝ๋ฃจํด) ๋ถ๋ถ์ด ๋งค์ฐ ํฅ๋ฏธ๋ก์ ๋ค. ๊ธฐ์ฌ ๊ณต๋ถํ๋ ์์ ์ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง ๊ธฐ๋ฒ๋ค์ ๋ง์ด ๋ฐฐ์ ์๋๋ฐ, ์ค์ ๋ก ํ๋ก๊ทธ๋จ ๊ด์ ์์ ์ด๋ฐ ์๋ฏธ๊ตฌ๋ ์ถ์๋ค.
- ์ฌ์ค ์ค๋ ํ๋ฃจ๋์ ์ด๋ก ์ ๋ฆฌํ ๋ด์ฉ์ด ๋ ๋ง์๋๋ฐ, ํฐ์คํ ๋ฆฌ ํ๋ฃจ ๊ธ ๊ฐ์๋ฅผ ์ด๊ณผํ๋ ๋ฐ๋์ ์ฌ๋ฆฌ์ง ๋ชปํ๋ค.
3. ํค์ค์คํฌ ๊ณผ์ ์์
- ํค์ค์คํฌ ๊ณผ์ ๋ฅผ ์ ๋ง '์์'๋ง ํ๋ค. (Lv 0 ๊ตฌํ)
- ๋ด์ผ์ ์ต์ Lv3 ๊น์ง ๊ตฌํํด๋ณผ ์๊ฐ์ด๋ค.
~ Retrospect ~
๋ฐ๋ผ๋ณด๊ณ ์๋ ๋ชฉํ์์ ์๋ํ๋ ๊ฒฝํ์ด ์ค๋๋ง์ด๋ค. ์ค์ค๋ก ๊ฐํ๊ณ ๊ด์ฐฎ๋ค ์๊ฐํ๋๋ฐ, ์๊ฐ๋ณด๋ค ์ํฅ์ด ๊ฐ๋์ง ๋ฉํ์ ์ด์ง ๊ธ์ด ๊ฐ์ ์๊ธฐ๊ณ๋ฐ๊ณผ ์ ์ ๋ ฅ์ ๋ค์ก๋ ์์์ ๋ง์ด ๋ดค๋ค. ๋ถ๋ชจ๋์ด ์ฌ๋์ผ๋ก ๊ธธ๋ฌ์ฃผ์ ๋ธ์ด์, ์ค๋น ์ ์๋์ค๋ฐ ๋์์ด์, ์ฃผ๋ณ ์ฌ๋๋ค์ด ์์ํด์ฃผ๋ ์น๊ตฌ์์ ์์ง๋ง์. ์ฃผ๋ณ์ธ๋ค์๊ฒ ๊ฐ์ฌํด์ง๋ ํ๋ฃจ์๋ค.