header-img
Info :
๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 42
15. 3Sum
2023.08.21
1. my code trash ๊ฐ™์ด ํ’€์—ˆ์Œ. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€๋ ค๊ณ  ๋…ธ๋ ฅํ•œ๊ฒŒ ๋” ๋ณต์žกํ•˜๊ฒŒ ํ’€๊ฒŒ ๋œ ๊ฒฐ๊ณผ.. ๊ณต๊ฐ„๋ณต์žก๋„ + ์‹œ๊ฐ„๋ณต์žก๋„ ๋งค์šฐ ์ข‹์ง€ ์•Š์Œ. ์ผ๋‹จ ๋‚ด ์ƒ๊ฐ์œผ๋กœ๋Š” ๊ฐ ์ˆ˜์˜ ์ ˆ๋Œ€๊ฐ’์œผ๋กœ Map์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๊ฐ ๊ฐ’์˜ ๋ถ€ํ˜ธ์— ๋”ฐ๋ผ ์–‘์ˆ˜๋ฉด Pair์˜ first++, ์Œ์ˆ˜๋ฉด second++์„ ํ•ด์คŒ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋งต์˜ ํ‚ค ๊ฐ’์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์คŒ. answer์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ์กฐ๊ฑด์€ (a, b, c) ๋ชจ๋‘ ๋‹ค ๋‹ค๋ฅธ ๊ฐ’์ด๋ฉด ๊ฐ™์€ ๋ถ€ํ˜ธ์ธ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” b < c๋ฅผ ํ•ด์คŒ. 1. ํ‚ค ์ค‘ 0์ด ์žˆ๋‹ค๋ฉด ๋งต ์ค‘์—์„œ value์˜ first, second ๋‘˜ ๋‹ค 0์ด ์•„๋‹Œ ๊ฐ’์— ํ•œํ•ด์„œ answer์— ์ถ”๊ฐ€ 2. ๋งต์—์„œ ์Œ์ˆ˜์ธ ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๋งต๋“ค์— ๋Œ€ํ•ด์„œ๋งŒ ์Œ+์–‘+์–‘ ์กฐํ•ฉ ์ฐพ์Œ. ๋จผ์ € ์Œ์ˆ˜์ ˆ๋Œ€๊ฐ’ / 2๊ฐ€ ๋–จ์–ด์ง€๋ฉด ์Œ์ˆ˜์ ˆ๋Œ€๊ฐ’ / 2ํ•œ ๊ฐ’์˜ ๊ฐœ์ˆ˜๊ฐ€ ..
list_img
๊ฟˆ์„ ๊พธ๋“ฏ ์ถค์„ ์ถ”๋“ฏ
2023.08.08
๊ฟˆ์„ ๊พธ๋“ฏ ์ถค์„ ์ถ”๋“ฏ ๊น€์žฌ์•„ SF 23.07.21 ~ 23.08.02
list_img
[Android] Hilt
2023.05.09
Dependency ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ. A ํด๋ž˜์Šค๊ฐ€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด B ํด๋ž˜์Šค๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ B๋Š” A์˜ ์˜์กด ๋Œ€์ƒ์ด ๋จ. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ๋Ÿฌ๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋“œ๋ ˆ์‹ฑ์ด ํ•„์š”ํ•จ. ์ƒ๋Ÿฌ๋“œ๋Š” ๋“œ๋ ˆ์‹ฑ์— ์˜์กดํ•˜๊ณ  ์žˆ์Œ. ๋”ฐ๋ผ์„œ ์ƒ๋Ÿฌ๋“œ ← ๋“œ๋ ˆ์‹ฑ ๊ด€๊ณ„๊ฐ€ ๋จ. ์—ฌ๊ธฐ์„œ ๋“œ๋ ˆ์‹ฑ์ด ์˜์กด์˜ ๋Œ€์ƒ, Dependency๊ฐ€ ๋จ. Injection ์œ„์˜ ์˜ˆ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ƒ๋Ÿฌ๋“œ ํด๋ž˜์Šค, ๋“œ๋ ˆ์‹ฑ ํด๋ž˜์Šค๊ฐ€ ์žˆ์„ ๋•Œ ์ƒ๋Ÿฌ๋“œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋“œ๋ ˆ์‹ฑ์˜ ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•จ. ํ•˜์ง€๋งŒ ์ด ๋“œ๋ ˆ์‹ฑ ๊ฐ์ฒด๋ฅผ ์ƒ๋Ÿฌ๋“œ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์™ธ๋ถ€์—์„œ ๋งŒ๋“ค์–ด์„œ ๊ฑด๋„ค์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ. ์ด๋ ‡๊ฒŒ ์™ธ๋ถ€์—์„œ ์˜์กด๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋Œ€์ƒ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ์˜์กด์„ฑ(Dependency)์„ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…(Inje..
[Android] Base Activity, Fragment
2023.04.16
๋ฐฑ์—…์šฉ๋„๋กœ ์ž‘์„ฑ import android.os.Bundle import androidx.annotation.LayoutRes import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding import androidx.lifecycle.ViewModel abstract class BaseActivity(@LayoutRes val layoutRes: Int) : AppCompatActivity() { /*@LayoutRes abstract fun getLayoutRes(): Int*/ abstract val viewModel: ..
list_img
[Android] OKHttp3๋ฅผ ์‚ฌ์šฉํ•œ ํ—ค๋” ์ถ”๊ฐ€, Retrofit2๋ฅผ ์‚ฌ์šฉํ•œ http ํ†ต์‹ 
2023.04.16
OKHttp3, Retrofit2 square์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. http ํด๋ผ์ด์–ธํŠธ๋กœ ์‰ฝ๊ฒŒ request, response๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ. Retrofit ํŠน์ง• ์„ฑ๋Šฅ์ด ์ข‹์Œ. (Volley, AsyncTask์— ๋น„ํ•ด) annotation์„ ์‚ฌ์šฉํ•ด HTTP ์ž‘์—…์„ ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋“ค์ด ํ–‰์œ„๋ฅผ ์†์‰ฝ๊ฒŒ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Œ. (๊ฐ€๋…์„ฑ ๐Ÿ‘) ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ(JSON)๋ฅผ ์ž๋™์œผ๋กœ ํŒŒ์‹ฑํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธ๋ฆฌํ•จ. ์บ์‹ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ image loading์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ glide์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ. OKHttp3 - ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ๋ถ€๋ถ„ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ๋ถ€๋ถ„์€ ํด๋ผ์ด์–ธํŠธ์—์„œ request๋ฅผ ๋‚ ๋ฆด ๋•Œ ํ—ค๋”๋ฅผ ๋„ฃ์–ด์ฃผ๋„๋ก ๋งŒ๋“ค์—ˆ์Œ. // header ์ถ”๊ฐ€ private val ok..
[Android] Custom View
2023.04.15
๋ฉด์ ‘๊ธฐ๋ก์šฉ Custom View ์ •๋ฆฌ ์ปค์Šคํ…€ ๋ทฐ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์  ์™„์ „ ๋งž์ถค ๋ Œ๋”๋ง ๋œ ๋ทฐ ์œ ํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ ๊ธฐ์กด view ๊ตฌ์„ฑ์š”์†Œ ๊ทธ๋ฃน์„ ์ƒˆ๋กœ์šด ๋‹จ์ผ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ ํ‚ค ๋ˆ„๋ฆ„๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋งž์ถค ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• attrs.xml ์ •์˜ : ์ปค์Šคํ…€ ๋ทฐ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์†์„ฑ์ด ์žˆ๋‹ค๋ฉด attrs.xml์— ์ •์˜ํ•ด์คŒ res > values ํด๋”์— attrs.xml ์„ ์ƒ์„ฑ declare-styleable ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑ ํ›„ name์—๋Š” ์ปค์Šคํ…€๋ทฐ ํด๋ž˜์Šค๋ช…์„ ์ž…๋ ฅ attr ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ด์„œ name์—๋Š” ์†์„ฑ๋ช…, format์—๋Š” ์†์„ฑ์˜ type์„ ์ž…๋ ฅํ•ด์คŒ // ์˜ˆ์‹œ ์ปค์Šคํ…€ ๋ทฐ ํด๋ž˜์Šค ์ƒ์„ฑ View ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑ, ์ด๋•Œ์˜ ํด๋ž˜์Šค๋ช…์€ ์œ„ attrs..