๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
-
[Android] Context, ContextWrapper, ContextImpl ์ดํดAndroid 2021. 11. 21. 22:48
Context ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด Context์ ๋ํด์๋ ์ผํ ์๊ณ ์์ ๊ฒ์ ๋๋ค. ์ ๋ ๋จ์ํ ์์ด๋ก ํด์ํ์ฌ ๋ฌธ๋งฅ, ๋จ๋ฝ์ ์๋ฏธ๋ก์ ์ปดํฌ๋ํธ๋ค์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด๋ค์ ๋ด๊ณ ์๋ ํด๋์ค๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๊ฐ๋ฐํ๋ ์ค์๋ Context๊ฐ ๋ง์ด ํ์ํ๊ฒ ๋๋๋ฐ this(Activity), getContext, getApplicationContext์ ๋ํ ์ดํด์์ด ๋์ ํด๋ณด๊ณ ๋๋ ๊ฒ์ ์ค์ ํ ๋๋ ๋ง์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๋ฉด์ ์์ ๋๋ต์ ๋ชปํ ๋๊ฐ ๋ง์๊ณ ๋๋ฒ๊น ํ๋๋ฐ ์ค๋์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ ๋๋ผ๊ณ ์ฒ์ฒํ ์ ๋๋ก ๋ฐฐ์๋ณด๊ณ ์ ๊ณต๋ถ๋ฅผ ํ๊ณ ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ๊ณต์๋ฌธ์์์ ์ค๋ช ํ๊ธฐ๋ก Context๋ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๊ฒฝ ์ ๋ณด์ ๋ํ ์ธํฐํ์ด์ค๋ก, ์์์ ์ถ์๋ฉ์๋๋ก ์ด๋ค์ง ์ถ์ ํด๋์ค์ ๋..
-
[Android] Preference, Shared Preference?Android 2021. 11. 19. 14:41
Shared Preference? ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ๋๋ถ๋ถ ์ค์ ์ ํ ์ ์๋ ํ๋ฉด์ด ๋ณ๋๋ก ์กด์ฌํฉ๋๋ค. ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋ค๋๊ฐ, SMS ์์ ๋์ ์ฌ๋ถ์ ๊ฐ์ ์ค์ ์ ํ๊ฒ ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์คํํ๋๋ผ๋ ์ ์ง๋ฉ๋๋ค. ์ด์ฒ๋ผ ์๋๋ก์ด๋์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์์คํ ์ ์ฒด์์ ์ ์ง๋๋๋ก ์ ์ฅํ ์ ์๋ฃ๊ตฌ์กฐ๊ฐ Shared Preference ์ ๋๋ค. Shared Preference๋ ํค์ ๊ฐ์ ๋ด์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ก Editor๋ฅผ ํตํด xml ํ์ผ์ ๊ธฐ๋กํ์ฌ ์ธ์ ๋ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. Activity.getPreference() Shared Preference๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ API ์ค ํ๋๋ก Activity ํด๋์ค ๋ด์ ์กด์ฌํ๊ณ Activity ๋ณ๋ก ๋ค๋ฅธ SharedPreference ..
-
[Programmers] Lv1.N^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ(Kotlin)SW Test/Programmers 2021. 11. 15. 22:27
์ด ๋ฌธ์ ๋ kotlin์ผ๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ๋ฐฐ์ด์ ๊ตฌํ ํ์ ๋ต์ ๊ตฌํ๋ฉด ์ฝ๊ฒ ๊ตฌํ ์ ์์ง๋ง ์๊ฐ์ด๊ณผ๋ฅผ ํผํ ์ ์์ต๋๋ค. ํด๋น ๋ฌธ์ ๋ ๋ฐฐ์ด์ ๊ตณ์ด ๊ตฌํ ํ์์์ด ๊ท์น์ ์ ํ์ ํ๋ฉด ์ํ๋ ์ง์ ๋ถํฐ ๊ฐ์ ๊ตฌํ ์ ์์ต๋๋ค. 1๋ฒ์งธ ํ์์๋ 1๋ฒ์งธ ์ด๊น์ง 1๋ก ์ฑ์ฐ๊ณ ์ดํ๋ถํฐ๋ 1์ฉ ์ฆ๊ฐํฉ๋๋ค. 2๋ฒ์งธ ํ์์๋ 2๋ฒ์งธ ์ด๊น์ง 2๋ก ์ฑ์ด ํ 1์ฉ ์ฆ๊ฐํฉ๋๋ค. ... n๋ฒ์งธ ํ์์๋ n๋ฒ์งธ ์ด๊น์ง n์ผ๋ก ์ฑ์๋๋ค. class Solution { fun solution(n: Int, left: Long, right: Long): IntArray { var answer = mutableListOf() var start_row = left/n; var start_col = left%n va..
-
[Programmers] Lv1. ์ต์์ง์ฌ๊ฐํ(Kotlin)SW Test/Programmers 2021. 11. 12. 02:29
์ด ๋ฌธ์ ๋ kotlin์ผ๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด kotlin ์์ maxํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ kotlin.math.max ๋ฅผ import ํด์ฃผ์ด์ผ ํ๋ค. ํด๋น ๋ฌธ์ ๋ ๋ฐฐ์ด ํ ์ค์ฉ ํ์ธํ์ฌ first๋ ๊ธฐ์กด์ ๊ฐ y์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ ์ค ํฐ ๊ฐ๊ณผ ๊ธฐ์กด์ x์ ๋ฐฐ์ด์ ๋ ๋ฒ์งธ ๊ฐ ์ค ํฐ ๊ฐ์ ๊ณฑํ๋ ๊ฐ์ ๋๋ค. second๋ ๋ฐ๋๋ก y์ ๋ฐฐ์ด์ ๋ ๋ฒ์งธ ๊ฐ ์ค ํฐ ๊ฐ๊ณผ x์ ์ฒซ ๋ฒ์งธ ๊ฐ ์ค ํฐ ๊ฐ์ ํด๋น๋ฉ๋๋ค. ์ดํ first์ second ์ค ๋ ์์ ๊ฐ์ด answer์ด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(sizes: Array): Int { var answer: Int = 0 var y = 0 var x = 0 for..
-
[Android] Thread, Handler, Looper, Message Queue ๋ค๋ฃจ๊ธฐAndroid 2021. 11. 11. 03:13
Asynchronous Programming ์์ฆ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ๋ค์ ๋น๋๊ธฐ์ ์ผ๋ก ์คํ์ด ๋ฉ๋๋ค. ์๋๋ก์ด๋์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์ํ ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ณ๋์ Thread๋ฅผ ์์ฑํ์ฌ ๋์์ ์ผ๋ก ์์ ์ ์คํํ๊ฒ ํ๋ ๋ฐฉ๋ฒ๋ถํฐ AsyncTask, RxJava, RxKotlin, Coroutine ๋ฑ ํธ๋ฆฌํ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ํ๋๊ณ ์์ต๋๋ค. ํ์ง๋ง ์๋๋ก์ด๋์์ ์ ๊ณตํด์ฃผ๋ Thread, Handler, Looper, Message Queue๋ฅผ ์ ๋๋ก ์๊ณ ์์ด์ผ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ๊นจ๋ซ๊ฒ ๋๊ณ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ํธ๋ฆฌํจ์ ์ ์ ์์ ๊ฒ ๊ฐ์ ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋์์ต๋๋ค. Thread ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์๋..
-
[Kotlin] Scope functions (let, with, run, apply, also) ์ดํดAndroid/Kotlin 2021. 11. 8. 01:10
Scope functions ์ด๋? ์ฝํ๋ฆฐ์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด์ ์ฌ๋ฌ Scope function๋ค์ ์ฌ์ฉํ์์ง๋ง, ์ฌ์ฉํ๋ฉด์๋ ์ ๋๋ก ์ฌ์ฉํ๊ณ ์๋์ง ์๊ตฌ์ฌ์ด ๋ค ๋๋ ๋ง์๊ณ ์ํฉ์ ๋ฐ๋ผ ์ด๋ค Scope function๋ค์ ์ฌ์ฉํ๋๊ฒ ์ข์์ง ๊ณ ๋ฏผ์ด ๋ง์์ต๋๋ค. ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ์ ๋๋ก ๊ณต๋ถํ๊ธฐ๋ก ๋ง์์ ๋จน์๊ณ ๊ณต์๋ฌธ์๋ฅผ ํ ๋๋ก ๊ฐ๋ฐ ๊ฒฝํ๊ณผ ํจ๊ป ๊ธ์ ์์ฑํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋จผ์ , Scope function์ 5๊ฐ๋ก let, with, run,apply, also ๊ฐ ์ฝํ๋ฆฐ์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋์ด ์์ต๋๋ค. Scope function์ ๋ง ๊ทธ๋๋ก ๋ฒ์(Scope)๊ฐ ์๊ธฐ๋๋ฐ ํด๋น ๋ฒ์๋ ํน์ ๊ฐ์ฒด์ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ณ ์ผ๋ จ์ ๋์์ ํฌํจํ๋ ํจ์์ ๋๋ค. Scope function์ ๋๋ค์๊ณผ ๋์ผํ๊ฒ ์์ฑ์ ํ..
-
[Android] Activity๋? Activity LifeCycle ์๋ฒฝ ์ดํดAndroid 2021. 11. 3. 02:55
Activity๋? ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํ ๋ฒ์ด๋ผ๋ ํด๋ดค๋ค๋ฉด Activity๋ ๋ฌด์กฐ๊ฑด ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์ ๋ํ Activity๋ฅผ ์์ฃผ ์ฌ์ฉํ์ง๋ง ๊ตฌ์ฒด์ ์ผ๋ก Activity์ ์ญํ ์ด ๋ฌด์์ด๊ณ , LifeCycle์ ์๊ฐํด์ ๊ฐ๋ฐ์ ํ ์ ์ด ์์ ์ ๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ณ ์์ง ์์ต๋๋ค. ์ค์ ๋ฉด์ ์์๋ ๋จ๊ณจ ์ง๋ฌธ์ผ๋ก ๋น ์ง์์ด ๋์ค๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ๊ณต๋ถํ๊ณ ์ ์ด ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ๋ณธ๋ก ์ผ๋ก ๋์๊ฐ์ Activtiy๋ ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋๋ก ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ๋ UI๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํฉ๋๋ค. ์๋๋ก์ด๋ ํฐ์์ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ๋ณด์ฌ์ง๋ ํ๋ฉด์ด ๋๋ถ๋ถ Activity๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ข ๋ ์์ธํ ์ค๋ช ํ๊ธฐ ์ ์ Entry Point์ ๋ํด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. โป En..
-
[BaekJoon] 2295๋ฒ ์ธ ์์ ํฉSW Test/BaekJoon 2021. 8. 22. 21:41
์ด ๊ธ์ C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ด ๋ฌธ์ ๋ฅผ 3์ค for๋ฌธ์ ์ฌ์ฉํ๋ฉด ํฉ์ ๊ตฌํ๊ณ ํฉ์ด ์กด์ฌํ๋์ง ํ๋จํ์ฌ ์๊ฐ๋ณต์ก๋๊ฐ O(N4)์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ๋ง์ง๋ง ํฉ์ด ์กด์ฌํ๋์ง๋ฅผ ์ด๋ถํ์์ ์ฌ์ฉํ๋๋ผ๋ ์๊ฐ๋ณต์ก๋๊ฐ O(N3logN)์ด๋ผ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ถ๊ฐํผํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ด๋ถํ์์ ์ฌ์ฉํ๋, ์๋ก์ด ๊ธฐ๋ฒ์ ํ์ฉํด์ผ ํฉ๋๋ค. ์ฆ 2๊ฐ์ ์ซ์์ ํฉ์ ํ๋์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค. ์ด ๋์ ์๊ฐ๋ณต์ก๋๋ O(N2)์ ๋๋ค. ์ดํ ์ฒ์ ๋ฐฐ์ด์ ๋ ๊ฐ์ ์ฐจ์ด๊ฐ 2๊ฐ์ ์ซ์์ ํฉ ๋ฐฐ์ด์ ์กด์ฌํ๋์ง ํ์ธํ๋ฉด ๋ฉ๋๋ค. O(N2logN)์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. ex) a1+a2+a3 = a4 ->, a4 - a3 = a1+a2 #include #include #includ..