๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
TableView๋ฅผ ์ฌ์ฉํ๋ฉด์ Cell์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด extension์ผ๋ก UITableViewDataSource๋ฅผ ์ฌ์ ์ํ๊ณ ๋น๋๋ฅผ ์งํํ๋ค. extension ViewController : UITableViewDataSource { func tableView(_ tableView : UITableView, numberOfRowsInSection section : Int) -> Int { return self.tasks.count } func tableView(_ tableView : UITableView, cellForRowAt indexPath : IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdenti..
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
์ธํด ๊ธฐ๊ฐ ๋์ ๊ฐ๋ฐํ ์ฑ์ ๋ฐฐํฌํ๋ ค๊ณ ์ฑ ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ๊ณ Gradle์์ debug -> release ๋ก ๋ณ๊ฒฝํ๊ณ Build Apk ๋ฅผ ๋๋ ๋๋ฐ! ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ด๋ค. mockup1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature. ์์นญ์ ํด๋ณด๋๊น Gradle ๋ฒ์ ผ์ด ๋ง์ง ์๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ๋ค~ ์ด๋ฐ ๊ธ๋ค์ด ๋ง์๋ฐ ๋ญ๊ฐ ์ด์ํ๋ค. ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ ๋ฒ์ ผ์ด 7์ธ๋ฐ 4๊น์ง ๋ฎ์ถฐ์ผํ๋ค๊ณ ? ๊ดํ ๊ฑด๋๋ ธ๋ค๊ฐ ๋ค๋ฅธ ์ค๋ฅ๋ก ํฐ๋ฏธ๋์ด ํฐ์ง ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ์ฒจ๋ถํ ์ฑ ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ์ดํด๋ดค๋ค. ํ์ผ๋ช
์ ic..
โน๏ธ ๋ผ์ดํ/ํ๊ณ
๋ชจ์ฒ๋ผ ํ๊ณ ๊ธ๋ก ์ฐพ์์๋ค. ํผ๋ ์ดํ๋ก ์ด์ชฝ ๊ฒ์ํ์์ ์ฐ๋ ๊ฑด ์ฒ์์ธ๋ฐ, ์ค๋์ ๋ค์ ์ฃผ๋ฉด ๋๋ NC Summer Intern ํ๊ธฐ์ ๋ํ ๊ธ์ ์ฐ๋ ค๊ณ ํ๋ค. ์ด๋ป๊ฒ ์๊ฒ ๋๋์? 1ํ๊ธฐ์ ์ธํด, ๋์๋ฆฌ, ๊ต์ก ํ๋ก๊ทธ๋จ์ ์ข ์์๋ณด๊ณ ์ง์ํ๋ ์ค 2022 ์์จ์ํํธ ์ธ๋จธ ์ธํด์ด๋ผ๋ ๊ธ์ ๋ณด๊ฒ ๋๊ณ ์ฌ๋ด ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์ด ๋์ ๋ค์ด์๋ค. ๊ณต๊ณ ์ ํ๋ฌํฐ์ ์ญ๋์ด ๊ธฐ์ฌ๋์ด ์๋ ๊ฒ์ ๋ณด์ํ๋ ํ๋ฌํฐ๋ก ์ฌ๋ด ์ฑ์ ๊ฐ๋ฐํ๊ณ ์์์ ์ง๊ฐํ๊ณ ์๋๋ก์ด๋ ๋ฟ๋ง ์๋๋ผ ํ๋ฌํฐ ์ญ์ ๊ด์ฌ ์์๊ธฐ์ ํด๋น ๊ณต๊ณ ์ ์ง์ํ๋ค. 1์ฐจ - ์๋ฅ + ์ฝํ
์ ํ ์์์ ๋ถ๋์ด ๋ฌธํญ๋น 300์๋ก ๋ง์ง๋ ์์๋ค. ๋์์ ์ฝํ
๋ ๊ฐ์ด ์งํ๋๋ค. ํ ์์ผ์ ์งํ๋๋ ๊ฑธ๋ก ๊ธฐ์ตํ๋ค. ์ด 3๋ฌธ์ ๊ฐ ์ถ์ ๋์๊ณ ๋ง์ง๋ง ๋ฌธ์ ๋ ํด๊ฒฐํ์ง ๋ชปํ๋ค. ์ฝํ
..
๐ป ๊ฐ๋ฐ/Flutter
๋ธ๋ก๊ทธ ๋ด์ ๊ฒ์๋ฌผ์ PC ๋ฒ์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค. ์ค๋์ ModalBttomSheet๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํด ์ ์ด๋ณด๋ ค๊ณ ํฉ๋๋ค. ModalBottomSheet์ TextField๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ณด๋๋ก ์ฌ์ฉ์์ ์
๋ ฅ์ ๋ฐ์ผ๋ ค๊ณ ํ์ต๋๋ค. ํ์ง๋ง ModalBottomSheet๊ฐ ํ์
๋ ํค๋ณด๋์ ๋์ด๋งํผ ์ฌ๋ผ๊ฐ์ง ์์์ ModalBottomSheet๊ฐ ํค๋ณด๋์ ๊ฐ๋ ค์ง๋ ํ์์ด ๋ฐ์ํ์ต๋๋ค. ์๋์ ๊ฐ์ ์ํฉ์
๋๋ค. ํค๋ณด๋๊ฐ ํ์
๋๋ฉด์ ModalBottomSheet๋ฅผ ๊ฐ๋ ค ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํ
์คํธ๋ฅผ ํ์ธํ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ModalBottomSheet๊ฐ ํค๋ณด๋์ ์ํด ๊ฐ๋ ค์ง๋ ํ์ ์ฐ์ ModalBottomSheet์ ์์ฑ์ ๋ํด ๋ถ์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค isScrollContro..
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
์ค๋ ์๋๊ถ์ ๋น๊ฐ ์์ฒญ ๋ด๋ ค์ ์ฌํ์ ํ๊ฒ ๋๋ค. ์ฌ๋ด ๊น๊ณผ ์ฐ๋์ด ๋์ด ์์ง ์์์ ํ๋ก์ ํธ๋ฅผ ์๋ก ์์ฑํด์ ๋น๋๋ฅผ ํ๋๋ฐ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. Gradle ๋ฒ์ ผ๊ณผ Kotlin Gradle Plugin ๋ฒ์ ผ์ด ๋ง์ง ์์ ์๊ธฐ๋ ์ค๋ฅ์๋ค. ์น์ ํ๊ฒ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. android/gradle/wrapper/gradle-wrapper.properties๋ฅผ ์์ ํ๋ฉด ๋๋ค. ์๋ ค์ค ํด๊ฒฐ ๋ฐฉ๋ฒ๋๋ก ๋ฒ์ ผ์ 6.7.0์์ 6.7.1๋ก ๋ณ๊ฒฝํ๋๋ฐ ์ ์์ ์ผ๋ก ๋น๋๊ฐ ๋๋ค. Gradle ๋ฒ์ ผ์ ์๋ ๋งํฌ์์ ํ์ธํ ์ ์๋ค. Gradle Distributions services.gradle.org
๐ป ๊ฐ๋ฐ/Flutter
๋ธ๋ก๊ทธ ๋ด์ ๊ฒ์๋ฌผ์ PC ๋ฒ์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค. ์ค๋์ Equatable์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. BLoC์ ๋ํ ๊ธ์ ์ฐ๊ธฐ ์ ์ BLoC์์ ์ฌ์ฉํ๋ Equatable์ ๋ํ ์ ๋ฆฌ๊ฐ ์ฐ์ ์ ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ๋ณด์ฃ ! ์๋ ์ฝ๋๋ฅผ ๋จผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. class Person { final int pid; final String name; final int age; Person(this.pid, this.name, this.age); } void main() { Person p1 = new Person(20221234, "kodo", 25); Person p2 = new Person(20221234, "kodo", 25); (p1 == p2) ? print("same") : ..
๐ป ๊ฐ๋ฐ/Flutter
๋ธ๋ก๊ทธ ๋ด์ ๊ฒ์๋ฌผ์ PC ๋ฒ์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค. ์ค๋์ ํ๋ฌํฐ์์ ์๋ ๋ก๊ทธ์ธ์ Splash Screen์ ๊ตฌํํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์๋ ๋ก๊ทธ์ธ์ ์ฑ ๊ฐ๋ฐ์ ์ ํด๋ดค๋ค๋ฉด ํ ๋ฒ์ฏค์ ๊ตฌํํด๋ดค์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. SharedPreference๋ฅผ ํ์ฉํด์ ๊ตฌํํ๋๋ฐ ์ค๋์ ์กฐ๊ธ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ์ต๋๋ค. ๋ฐ๋ก BLoC๋ฅผ ํตํด์ ๊ตฌํํ๋๋ฐ์, BLoC๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ ๋ก๊ทธ์ธ๊ณผ Splash Screen์ ํ๋์ ๋ก์ง์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ํ๋ฒ ์์ํด๋ณด์ฃ . ๋ฐ๋ก BLoC๋ก ๊ตฌํํ์ง ์๊ณ ๊ธฐ์กด์ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ณ BLoC๋ก ๋ฆฌํํ ๋งํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํฉ๋๋ค. ๊ธฐ์กด ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ฉด์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ด ๋ฌธ์ ๋ฅผ ์ด๋ค ์์ผ๋ก ํด๊ฒฐํ๋์ง๊ฐ ์ค์ํ๋๊น์. ์๋ ๋ก๊ทธ์ธ ์์ ๋ง์๋๋ฆฐ ๊ฒ์ฒ๋ผ SharedPrefer..
๐ป ๊ฐ๋ฐ/Flutter
๋ธ๋ก๊ทธ ๋ด์ ๊ฒ์๋ฌผ์ PC ๋ฒ์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค. ์ ๋ง ์ค๋๋ง์ ๊ธ ์ฐ๋ ๊ฑฐ ๊ฐ๋ค์. ๋ฏธ๊ตญ์์ ๋์์์ ์ผ๊ธฐ ์ด ๊ฒ ๋ง์ง๋ง์ธ๋ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฐ๋ ค๊ณ ํ์๋๋ฐ 1ํ๊ธฐ์ ํ๋ก์ ํธ๊ฐ ๋๋ฌด ๋ง์์ ๋ฐ๋นด์ต๋๋ค. ๊ธ ์ฐ๊ณ ์๋ ์ง๊ธ์ ์์จ์ํํธ์์ 7์ฃผ์ง๋ฆฌ ์ฑ์ฉ์ฐ๊ณํ ์ธํด์ ํ๊ณ ์์ต๋๋ค. ์ธํด์ ์งํํ๋ฉด์ ํ๋ฌํฐ๋ก ๊ฐ๋ฐ์ ํ๊ณ ์๋๋ฐ ๊ฐ๋ฐํ๋ฉด์ ์๊ฒ๋ ๊ฒ๋ค, ์ ๋ฆฌํ๋ฉด ์ข์ ๊ฒ๋ค์ ์ ์ด๋๊ณ ์ถ์ด์ ์ค๋๋ถํฐ ์ฃผ๊ธฐ์ ์ผ๋ก ํฌ์คํ
์ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค. (1ํ๊ธฐ ํ๊ณ ๋ก์ ์์ฑํ๊ณ ์๋๋ฐ ์์ง ์์ฑ์ด ์๋ผ์ ๋น๊ณต๊ฐ๋ก ํด๋จ์ต๋๋ค...) ์ฑ๊ธํค ์ฑ๊ธํค, ์ ๊ณต์๋ผ๋ฉด ๋ค๋ค ๋ง์ด ๋ค์ด๋ดค์ ๋จ์ด์ผ ๊ฒ๋๋ค. ๋ง ๊ทธ๋๋ก ์ฑ๊ธ, ํ๋์ ์ธ์คํด์ค๋ง ์กด์ฌํ๋๋ก ํ๋ ๊ฒ์
๋๋ค. ์ธ์คํด์ค๋ฅผ ํ๋๋ง ๊ฐ์ง๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น์? ๋จธ๋ฆฌ ์์ ๋ ..
โ๏ธ ์ฝํ
์ค๋น/Implementation
๋ฌธ์ ์ฝ๋ฉํ
์คํธ ์ฐ์ต - 124 ๋๋ผ์ ์ซ์ programmers.co.kr ํ์ด ์ธ์ด Python ํ์ด ๋ฐฉ๋ฒ ์ฐ์ ์ง๋ฒ ๋ณํ ๋ฌธ์ ์ด๋ค. ์ข ํน์ดํ๊ธด ํ๋ฐ 3๊ฐ์ ์ซ์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก 3์ง๋ฒ์ ์๊ฐํ๋ฉด ๋๋ค. ํ์ง๋ง 10์ง์ 3์ ๋ณํํ์ ๋ 10์ด ์๋๋ผ 4๊ฐ ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ป๊ฒ ๋ณํ์ ํด์ผํ๋ ๊ฒ์ผ๊น? ์ฐ์ ๋ณํ ์ ๊ณผ ๋ณํ ํ๋ฅผ ํ๋ก ๋ํ๋ด๋ดค๋ค. 10์ง๋ฒ 3์ง๋ฒ 124 ๋๋ผ 1 1 1 2 2 2 3 10 4 4 11 11 5 12 12 6 20 14 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ์๋ง ํน์ดํ ๊ฐ์ ๊ฐ๋ ๊ฑธ ๋ณผ ์ ์๋๋ฐ ์ฌ๊ธฐ์๋ ๊ท์น์ด ์๋ค. ๋งจ ์ ์ซ์์์ -1 ์ ํ๊ณ ๋ค์ 0์ 4๋ก ๋ณํํด์ค๋ค๋ ์ . ์ฆ, 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ ๋ชซ์์ -1์ ํด์ค๋ค๋ ์๋ฏธ์ด๋ค. ์ฝ๋ def solu..
โ๏ธ ์ฝํ
์ค๋น/Binary Search
์
๋ ฅ ์์ ํ์ด ์ธ์ด Python ํ์ด ๋ฐฉ๋ฒ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ target์ ๋ง์กฑํ๋ ๋ ์์์ index๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์๋ค. ์ค๋ฆ์ฐจ์์ ์ ๋ ฌ๋ ๋ฐฐ์ด์ด์๊ธฐ์ BST ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค. ์ด๋ ต์ง ์๊ฒ ํด๊ฒฐํ๋ค. ์ฝ๋ class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: start = 0 end = len(numbers) - 1 while start target: end -= 1 elif mid < target: start += 1 else: return [start + 1, end + 1] ๊ฒฐ๊ณผ