Deep_Dev
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JAVA]Level 1 : ๋Œ€์ถฉ ๋งŒ๋“  ์žํŒ

https://school.programmers.co.kr/learn/courses/30/lessons/160586 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋จผ์ € ์‹ ๊ฒฝ์“ด ๋ถ€๋ถ„์€ ์ฐพ์„ target๋ฌธ์ž์—ด์ค‘ ๋ฌธ์ž๊ฐ€ ๋งŒ์•ฝ์— ์—†๋‹ค๋ฉด -1 ๋กœ ๋๋‚˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ keymap์˜ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋”ํ•ด์„œ, ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ๋จผ์ € ํŒ๋ณ„ํ–ˆ๋‹ค. ๊ทผ๋ฐ ๊ณ„์† ์˜ค๋‹ต์ด ๋‚˜์™”๋˜๊ฒŒ .. ! keymap ์ „์ฒด ๋ฐฐ์—ด์ค‘ ์ฐพ์„์ˆ˜๋Š” ์žˆ์–ด์„œ indexOf๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜์˜ index๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ keymap[0] ์—์„œ๋Š” ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์žˆ๊ณ  keymap[1] ์—๋Š” ์—†์„๊ฒฝ์šฐ 0์ด๋ผ๋Š”..

article thumbnail
[JAVA] DFS & BFS ์ •๋ฆฌ

๐Ÿ“š DFS & BFS ์ตœ์ข…์ •๋ฆฌ DFS : Depth First Search ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ BFS : Breadth First Search ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ DFS, BFS๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํƒ, ํ, ์žฌ๊ท€๋ฅผ ๋จผ์ € ์•Œ์•„์•ผํ•œ๋‹ค. ํ(Queue) ์Šคํƒ๊ณผ ๋ฐ˜๋Œ€๋กœ FIFO ๊ฐœ๋…์œผ๋กœ ๋จผ์ € ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด ๋จผ์ € ๋‚˜๊ฐ€๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. public class Main{ public static void main(String[] args) { Queue Q = new LinkedList(); Q.offer(1); Q.offer(2); Q.offer(3); Q.poll(); // 1 ์ถœ๋ ฅ Q.offer(4); Q.poll(); // 2 ์ถœ๋ ฅ } } ์ „์—ญ ํด๋ž˜์Šค Node DFS์™€ BF..

[JAVA] ์Šคํƒํ”„๋ ˆ์ž„ & ์žฌ๊ท€ํ•จ์ˆ˜

๐Ÿ“š ์Šคํƒํ”„๋ ˆ์ž„ & ์žฌ๊ท€ํ•จ์ˆ˜ ์Šคํƒ ํ”„๋ ˆ์ž„ ์Šคํƒ ํ”„๋ ˆ์ž„์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์Šคํƒ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ์—๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜, ํ˜ธ์ถœ์ด ๋๋‚ ๋’ค ๋Œ์•„๊ฐ€๋Š” ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๊ฐ’, ํ•จ์ˆ˜์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์Šคํƒ ์˜์—ญ์— ์ฐจ๋ก€๋Œ€๋กœ ์ €์žฅ๋˜๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ์Šคํƒ ํ”„๋ ˆ์ž„ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์Šคํƒ ํ”„๋ ˆ์ž„์„ ํ™œ์šฉํ•˜๋ฉด ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ๋ชจ๋‘ ๋๋‚œ ๋’ค์— ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜ public class Recursive { public static void main(String[] args){ Recursive T = new Recursive(); ..

[JAVA] Comparable & Comparator

๐Ÿ“š Comparable & Comparator - Comparable๊ณผ Comparator๋Š” ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. - ์ฆ‰, ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์— ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ ํ•ด์•ผํ•œ๋‹ค. ๋ณดํ†ต Comparable ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” compareTo(T o) ๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๊ฐ€ ์„ ์–ธ๋˜์–ด์žˆ๋‹ค. ์ด๊ฒƒ์€ compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜(Override)ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Comparator์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด compare ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ณ , Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. โœ… Comparable & Comparator " ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค " Why ? ์›๋ž˜๋Š” byte, int, double ๋“ฑ ๋ถ€๋“ฑํ˜ธ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๋‘ ๋ณ€์ˆ˜๋ฅผ ๋น„๊ตํ•  ..

article thumbnail
[iOS][SwiftUI] @State @Binding
๐ŸŽ iOS/SwiftUI 2024. 1. 7. 00:08

๐Ÿ“š @State @Binding Property Wrapper์— ๋Œ€ํ•ด์„œ State โœ… PropertyWrapper ? ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ฑฐ๋‚˜ ์ƒˆ๋กœ ์“ธ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. SwiftUI์—์„œ๋Š” property wrapper๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜์˜ ๋ณ€ํ™”์™€ ํ•ด๋‹น ์ž‘์—…์„ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. SwiftUI๋Š” state๋กœ ์„ ์–ธ๋œ ํ”„๋กœํผํ‹ฐ๋“ค์˜ ์ €์žฅ์†Œ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. StateValue ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ทฐ๋Š” ํ•ด๋‹น value์˜ appearance๋ฅผ ๋ฌดํšจํ™”ํ•˜๊ณ  ๋‹ค์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค. State ๋ณ€์ˆ˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด View๋Š” ์ƒˆ๋กœ ๋žœ๋”๋ง์„ ํ•˜์—ฌ ํ•ญ์ƒ ์ตœ์‹  ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. State ์ธ์Šคํ„ด์Šค๋Š” ๊ทธ ์ž์ฒด๋กœ ๊ฐ’์ด ์•„๋‹Œ, ๊ฐ’์„ ์ฝ๊ณ  ์“ฐ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ˜„์žฌ ๋ทฐ UI์˜ ํŠน์ •์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต Priv..

article thumbnail
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JAVA]Level 1 : ๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/12915 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1๋ฒˆ ํ’€์ด import java.util.*; class Solution { public String[] solution(String[] strings, int n) { String[] answer = new String[strings.length]; List list = new ArrayList(); for(int i=0; i

์ž๋ฃŒ๊ตฌ์กฐ
๐Ÿ’ป/CS 2024. 1. 2. 16:02

๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ์ž๋ฃŒ๊ตฌ์กฐ โœ… ๋ฐฐ์—ด(Array) & ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ โœ๏ธ Array์™€ LinkedList์˜ ์ฐจ์ด ๋ฐฐ์—ด์€ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ๋Š” ๋น„์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ๋’ค ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. โœ๏ธ Array์™€ LinkedList์˜ ํƒ์ƒ‰์‹œ๊ฐ„ ๋ฐฐ์—ด์€ index๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(1)์ด๋‹ค. ๋ฐ˜๋ฉด์— ๋ฆฌ์ŠคํŠธ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์•ผํ•˜๊ธฐ ๋–„๋ฌธ์— ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ์ฒซ ๋…ธ๋“œ์—์„œ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•˜๊ณ  ํƒ์ƒ‰ํ•  ๋…ธ๋“œ๊ฐ€ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N)์ด๋‹ค. โœ๏ธ LinkedList์—์„œ ์‚ญ์ œ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๊ณผ์ • ์‚ญ์ œ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๊ฐ€์žฅ ์ฒซ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋ฐ”๋กœ ๋‹ค์Œ ๋…ธ๋“œ๊ฐ€ ์‚ญ์ œํ•˜๊ณ ๋‚˜ ํ•˜๋Š”..

article thumbnail
[iOS][SwiftUI] Save Color in UserDefaults
๐ŸŽ iOS/SwiftUI 2024. 1. 1. 14:41

๐Ÿ“š Save Color in UserDefaults from Color Picker variable in Color Data private let COLOR_KEY = "COLOR" private let userDefaults = UserDefaults.standard saveColor func saveColor(color: Color) { let color = UIColor(color).cgColor if let components = color.components { userDefaults.set(components, forKey: COLOR_KEY) } } loadColor func loadColor() -> Color { guard let colorComponenets = userDefaults...