๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€179

[LeetCode] 217. Contains Duplicate with Swift ๋ฐฐ์—ด์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ Contains Duplicate - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 217๋ฒˆ ๋ฌธ์ œ๋Š” nums๋Š” intํ˜• ์ˆซ์ž์˜ ๋ฐฐ์—ด์ด๊ณ  ์ด ๋ฐฐ์—ด์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ’์ด ์žˆ์„ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ธ๋œป ๋ณด๊ธฐ์— ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„ ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ๋‚ฎ์€ ์ ์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐฐ์—ด์—์„œ ์ค‘๋ณต๋œ ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ•จ์ˆ˜๋ฅผ ์จ์•ผ ํ• ์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค. 1. ์ˆœ์ˆ˜ํ•œ .. 2020. 9. 17.
[Swift] ์™„์ „ ๊ฐ„๋‹จํ•œ tutorial -> URLSession์œผ๋กœ json api ์—์„œ ํŒŒ์‹ฑ๊นŒ์ง€ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ํ•˜๋‹ค๊ฐ€ ๋ฌด๋ฃŒ json ์‚ฌ์ดํŠธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹คโ˜บ๏ธ 6๊ฐ€์ง€ ์ข…๋ฅ˜์˜ api๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๋ถ€ ์šฉ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ• ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š” ์šฐ์„  ์ œ๊ฐ€ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ 'Posts' ์ž…๋‹ˆ๋‹ค. (์ง€๊ธˆ ํฌ์ŠคํŠธ ๋ง๋ก ์˜ ๋…ธ๋ž˜๋ฅผ ๋“ค์œผ๋ฉฐ ํฌ์ŠคํŠธ๋งจ์œผ๋กœ ํฌ์ŠคํŠธ api ๊ตฌ์กฐ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค๐Ÿ˜Ž Postman ๊ฐ•์ถ”) ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด Dictionary๊ฐ€ Array๋กœ ๋“ค์–ด์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ์ฆ‰ ์ฒ˜์Œ์—๋Š” key๊ฐ’์ด ์—†์–ด์šฉ ์šฐ์„  UI๋‚˜ ๊ธฐ๋Šฅ์ ์ธ ๋ถ€๋ถ„์€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  JSON ๋ฐ์ดํ„ฐ ๋ถ€ํ„ฐ ํŒŒ์‹ฑํ•ด ๋ณด์ฃ  ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์กฐ์ฒด๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ์ค๋‹ˆ๋‹ค. ์ด๋•Œ Decodable ์ด๋ž€ ๋””์ฝ”๋”ฉ ์ธ์ฝ”๋”ฉ์„ ์ƒ๊ฐํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค Encodable์€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•ด ์ค„๋•Œ Decodable์€ JSON์œผ๋กœ ๋ถ€ํ„ฐ ๊ฐ€.. 2020. 9. 12.
[Swift] UINavigationController ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿช Storyboard ์—์„œ ์ž„๋ฒ ๋“œ ํ•˜๊ธฐ Storyboard > Editor > Embed in > Navigation Controller ๐Ÿช Programmatically import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { self.window = UIWindow(frame: UIScreen.main.bound.. 2020. 9. 8.
[iOS, Swift] AppDelegate์—์„œ window์˜ rootViewController ์„ค์ •ํ•˜๊ธฐ Swift ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ์ƒ์„ฑํ•˜๊ณ  ๋นŒ๋“œํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด ์ฒซํ™”๋ฉด์ด Main.storyboard๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ์— ์žˆ๋Š” ViewController.swift ๋ง๊ณ  ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ window์˜ root view controller๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•  ๊นŒ์š”? ๋˜ํ•œ ์•ฑ ์‹œ์ž‘๊ณผ ๋™์‹œ์— ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋กœ๋“œํ•˜๋ฉด์„œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ํ•„์š”ํ•œ ์ดˆ๊ธฐ๊ฐ’์ด ์žˆ๋‹ค๋ฉด?! ์ด๋•Œ๋Š” AppDelegate์— ์ฝ”๋“œ ๋ช‡ ์ค„์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ํ˜„์žฌ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š” ์ฑ…์€ the big nerd ranch guide ios programming์˜ ๋ช‡ ๋…„ ์ง€๋‚œ ์ฑ…์ž…๋‹ˆ๋‹ค. ์ฑ… ๋Œ€๋กœ ๋”ฐ๋ผํ•˜๋‹ˆ xcode๊ฐ€ ์˜ˆ์ „๊ณผ ๋ฐ”๊ปด ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ์˜ˆ์ „ xcode์—๋Š” ์žˆ๋˜ window๋„ ์„ ์–ธํ•ด.. 2020. 8. 27.
[Android] ์นด๋“œ๋ทฐ ๋ ˆ์ด์•„์›ƒ ์—๋Ÿฌ or Refactor > Migrate to AndroidX android ์นด๋“œ ๋ทฐ ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  dependency๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด๋Ÿด ๋• ์ƒ๋‹จ์˜ ํƒญ์—์„œ Refactor์„ ํด๋ฆญ Migrate to AndroidX ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์ด๋Ÿฐ ์ฐฝ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. Migrateํด๋ฆญ ํ•˜๋‹จ ์ฐฝ์—์„œ Do Refactor ํด๋ฆญํ•ด ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๊น”๋”ํžˆ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค! Do Refactor ๋ฒ„ํŠผ๊นŒ์ง€ ๋ˆŒ๋Ÿฌ์ฃผ์…”์•ผ ๋˜์š”! 2020. 8. 26.
[iOS] ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ(View Controller)์˜ ์ƒ๋ช… ์ฃผ๊ธฐ Animation ๊ณต๋ถ€ํ• ๋ ค๊ณ  ๋ณด๋‹ˆ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋”๋ผ๊ตฌ์š”! ๋ทฐ ๋œจ์ž๋งˆ์ž ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์€๋ฐ ์ƒ๋ช… ์ฃผ๊ธฐ ๊ด€๋ จ๋œ ์ฝœ๋ฐฑ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋งŽ์•„์„œ ์–ด๋””์— ๋„ฃ์œผ๋ฉด ์ข‹์„ ๊นŒ ํ•˜๋‹ค๊ฐ€ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ์ •๋ฆฌํ•ด ๋ดค์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค... ์ด์ „์— ์˜ต์ ์”จ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์Šฌ์ฉ ์•Œ๊ณ  ์žˆ๊ธฐ๋Š” ํ•œ๋ฐ ์ •๋ฆฌํ•ด๋‘๋ฉด ๋‚˜์ค‘์— ๊ธฐ์–ต์ด ์•ˆ๋‚ ๋•Œ ์ฐธ๊ณ ํ•˜๋ ค๊ณ  ์ ์–ด๋ด…๋‹ˆ๋‹ค.. ๐ŸŒต์‹คํ—˜ํ•ด๋ณด๊ธฐ ์Šคํ† ๋ฆฌ ๋ณด๋“œ์— ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค๋ฅธ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•˜๋„๋ก ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (์Šคํ† ๋ฆฌ ๋ณด๋“œ ์‚ฌ์šฉํ•œ์ง€ ์–ผ๋งˆ ์•ˆ๋˜์„œ.. ์Šค๋ฆฐ์ด ์ž…๋‹ˆ๋‹ค) SubViewController.swift ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค ์ด๋™ํ•  ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์„ ํƒํ•ด ์ฃผ์‹œ๊ณ  identity ์ธ์ŠคํŽ™ํ„ฐ์—์„œ class๋ฅผ ๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ ์Šค์œ„ํ”„ํŠธ ํŒŒ์ผ๊ณผ.. 2020. 8. 21.
[iOS, Swift] Localization(๋กœ์ปฌ๋ผ์ด์ง•, ํ˜„์ง€ํ™”) ํ˜„์ง€ํ™”, ์ง€์—ญํ™”, ๋กœ์ปฌ๋ผ์ด์ง• ๋“ฑ๋“ฑ์œผ๋กœ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ถˆ๋ฆฌ๊ณ  ์žˆ๋Š”๋ฐ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ๋‹ค๋ฅธ ๋‚˜๋ผ์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ๊ทธ ๋‚˜๋ผ์˜ ์–ธ์–ด์— ๋งž๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์–ธ์–ด๋ฅผ ์„ค์ •ํ•ด ์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค~ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ๋Š” ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ• ๊นŒ ์‹ถ์—ˆ๋Š”๋ฐ ๊ธ€๋กœ๋ฒŒ ์•ฑ์„ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค๋ฉด ํ•„์ˆ˜์ผ ๊ฒƒ ๊ฐ™์•„ ์ •๋ฆฌํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค! ** ๋ณธ ๋‚ด์šฉ์€ iOS Program 6th (The Big Ranch Guide) ์˜์–ดํŒ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•œ ๊ฒƒ์ด๋ผ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด๋‚˜ ์˜ค์—ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋‚ด์šฉ์ด๋‚˜ ์ง€์ ์žˆ์œผ์‹œ๋ฉด ๊ผญ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐ŸŒ view๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๋ฐฉ๋ฒ•์—๋Š” Story board๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Programmatically ์ฆ‰, ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋“ฏ ์ง€์—ญํ™” ๋˜ํ•œ ์œ„ ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์— ๋Œ€์‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์ฒซ ๋ฒˆ์งธ๋กœ St.. 2020. 8. 19.
[Android] ์•ˆ๋“œ๋กœ์ด๋“œ ๊ตฌ์„ฑ ์š”์†Œ * ํ•ด๋‹น ๋‚ด์šฉ์€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ๋œ ์‚ฌ์‹ค์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๊ฑฐ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”! +) ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ์‹œ์  : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ•˜๋Š” ์ˆœ๊ฐ„ -> UI ์š”์†Œ ๊ฐฑ์‹ , ๋ณ€๊ฒฝ ์ผ๋ฐ˜ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ์‹œ์  : ์‹œ์Šคํ…œ์ด๋‚˜ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ดํ›„์— ์ƒ์„ฑ 4๋Œ€ ์š”์†Œ(Component)๋ž€ - Activity - Service - Broadcast Receiver - Content Provider ๊ทธ ์™ธ์— Intent, view, Fragment ๋“ฑ์ด ์žˆ์Œ ์•กํ‹ฐ๋น„ํ‹ฐ(Activity) - UI ํ™”๋ฉด์„ ๋‚˜ํƒ€๋ƒ„ -> ์ฆ‰ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์‹คํ–‰ ํ–ˆ์„ ๋•Œ ๋ณด๊ฒŒ ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ํ™”๋ฉด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ - ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์—ฌ๋Ÿฌ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ - ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒ์„ฑ์€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์ด๋ฉฐ ์—ฌ๊ธฐ์„œ ์•กํ‹ฐ๋น„ํ‹ฐ.. 2020. 8. 17.
[Android, Kotlin] ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์™€ ๊ธฐํƒ€ ํด๋ž˜์Šค Do it! ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฑ…์„ ์ฐธ๊ณ  ๋ฐ ์ธ์šฉ ํ•˜์—ฌ ์ž‘์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฑ…์— ์—†๋Š” ์ฃผ๊ด€์  ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค DTO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  DTO๋Š” ์ผ์ข…์˜ ํ‘œ์ค€๊ณผ ๊ฐ™์€ ์•ฝ์† -> ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ฐ›๊ณ ์ž ํ•˜๋Š” ์–ด๋–ค ์š”์†Œ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ ๋ทฐ๋ž€ mvc๋ชจ๋ธ์—์„œ ๋ทฐ๋ž€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ์ˆ˜ํ–‰ํ•จ ๋ชจ๋ธ์ด๋ž€ mvc๋ชจ๋ธ์—์„œ ๋ชจ๋ธ์ด๋ž€ ๋ฐ์ดํ„ฐ์˜ ํ‘œํ˜„์„ ์œ„ํ•ด ์ƒ์„ฑ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์˜ ์„ ์–ธ ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•จ - ์ฃผ์ƒ์„ฑ์ž๋Š” ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ - ์ฃผ์ƒ์„ฑ์ž์˜ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” val, var - abstract, open, sealead, inner ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค๊ฐ€ ์ž๋™ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ data class Customer(var name: String, var email: String) .. 2020. 8. 9.
[Kotlin 20200805] ํ”„๋กœํผํ‹ฐ ์ดˆ๊ธฐํ™” 06_1 ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ํ”„๋กœํผํ‹ฐ์™€ ํ•„๋“œ์˜ ์ฐจ์ด์  ์ž๋ฐ”์˜ ๊ฒฝ์šฐ ํด๋ž˜์Šค ๋‚ด์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ 'ํ•„๋“œ'๋ผ๊ณ  ํ•˜๊ณ  ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” 'ํ”„๋กœํผํ‹ฐ'๋ผ๊ณ  ์นญํ•จ. ํ”„๋กœํผํ‹ฐ์˜ ๊ฒฝ์šฐ ์ ‘๊ทผ ๋งค์„œ๋“œ์ธ getter์™€ setter๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์˜ ํ•„๋“œ์™€ ๋‹ค๋ฅธ ๋ช…์นญ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ. ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ๊ฐ ํ”„๋กœํผํ‹ฐ์— ๋Œ€ํ•ด ์ ‘๊ทผ ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋ฉฐ ์ฃผ ์ƒ์„ฑ์ž์— ์˜ํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. class ClassName(var a: String, var b: Double) // ํด๋ž˜์Šค ์ •์˜์™€ ํ•จ๊ป˜ ์ฃผ ์ƒ์„ฑ์ž์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•จ ์ฝ”ํ‹€๋ฆฐ์—์„œ์˜ ์ ‘๊ทผ ๋ฉ”์„œ๋“œ - val ๋กœ ์„ ์–ธํ•œ ํ”„๋กœํผํ‹ฐ๋Š” getter๋งŒ ๊ฐ€๋Šฅ. ๊ฐ’ ๋ฐ”๊พธ๋Š” ๊ฒƒ ๋ถˆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— - var์€ ๋‚ด๋ถ€์—์„œ ์ ‘๊ทผ ๋ฉ”์„œ๋“œ๊ฐ€ .. 2020. 8. 5.
[Kotlin 20200804] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ธํ„ฐํŽ˜์ด์Šค ์ฐธ๊ณ  ๋ฐ ์ธ์šฉ ๋„์„œ : Do it! ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ฐธ์กฐ - ์ธํ„ฐํŽ˜์ด์Šค ์ฐธ์กฐํ•˜๋Š” ํด๋ž˜์Šค -> ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ๋‚ด์šฉ ๊ตฌํ˜„ - ๋‹ค์ค‘ ์ƒ์†์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ ๋‹ค์ค‘ ์ธํ„ฐํŽ˜์ด์Šค ์ง€์ •์€ ๊ฐ€๋Šฅ - ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค์— ์˜ํ•ด ๋ฉ”์„œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ ๋ช…์ด ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ -> ์•ต๊ธ€ ๋ธŒ๋ž˜ํ‚ท()์„ ์‚ฌ์šฉ open class A { open fun a() = println("class a and method a") fun b() = println("class a and method b") } interface B { fun a() = println("interface a method a") fun c() = println("interface b method b") } class C : A(), B{ override.. 2020. 8. 4.
์Šค์ฝ”๋นŒ ์ง€์ˆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋” ๋งต๊ฒŒ ๋งค์šด ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” Leo๋Š” ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K ์ด์ƒ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Leo๋Š” ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‘ ๊ฐœ์˜ ์Œ์‹์„ ์•„๋ž˜์™€ ๊ฐ™๏ฟฝ๏ฟฝ programmers.co.kr ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต์—์„œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ž˜ ๋ณด๋ฉด ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๊ฐ€ ์ ํ˜€ ์žˆ๋‹ค. ์ด๋ฒˆ์— ํ•˜๊ฒŒ ๋œ ๊ฒƒ์€ ํž™(Heap) > ๋” ๋งต๊ฒŒ ์ด๋‹ค. ์ž‘์€ ์ˆ˜์™€ ๊ทธ ๋‹ค์Œ ์ž‘์€ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์—ฐ์‚ฐ์„ ํ•˜๊ณ  ๋‹ค์‹œ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์„œ ์ตœ์†Œ๊ฐ’ ๊ธฐ์ค€์— ๋Œ€ํ•œ ์กฐ๊ฑด๋งŒ ๋งž์ถ”๋ฉด ๋˜๊ฒ ๋‹ค ์‹ถ์—ˆ์œผ๋‚˜ ํšจ์œจ์„ฑ์—์„œ ๊ณผ๊ฐํžˆ ์•„์›ƒ๋‹นํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์—ฌ๊ธฐ์„œ 'ํž™'์„ ์ œ์‹œํ•œ ๊ฑธ๊นŒ? ์Šคํƒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” ๊ฑธ๊นŒ? def solution(scovile, k): answer = 0 w.. 2020. 8. 3.