๐Ÿค–/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ 12

ํˆฌ ํฌ์ธํ„ฐ (Two Pointers)

ํˆฌ ํฌ์ธํ„ฐ ๋ฆฌ์ŠคํŠธ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ 2๊ฐœ์˜ ์  ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌ ํŠน์ •ํ•œ ํ•ฉ์„ ๊ฐ€์ง€๋Š” ๋ถ€๋ถ„ ์—ฐ์† ์ˆ˜์—ด ์ฐพ๊ธฐ * ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ์ž‘์ ์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ฉด ํ•ญ์ƒ ํ•ฉ์ด ๊ฐ์†Œํ•˜๊ณ , ๋์ ์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ฉด ํ•ญ์ƒ ํ•ฉ์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. * ๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ์— ์Œ์ˆ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค. n = 5 # ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜ m = 5 # ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ถ€๋ถ„ํ•ฉ data = [1, 2, 3, 2, 5] # ์ „์ฒด ์ˆ˜์—ด count = 0 interval_sum = 0 end = 0 # start๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ๋ฐ˜๋ณต for start in range(n): # end๋ฅผ ๊ฐ€๋Šฅํ•œ ๋งŒํผ ์ด๋™์‹œํ‚ค๊ธฐ while interval_su..

๊ทธ๋ž˜ํ”„ ์ด๋ก  (Graph)

๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๊ทธ๋ž˜ํ”„: ๋…ธ๋“œ + ๊ฐ„์„  ใ„ด '์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ์ฒด(ํ˜น์€ ๊ฐ์ฒด)๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค' ใ„ด ์ธ์ ‘ํ–‰๋ ฌ(2์ฐจ์› ๋ฐฐ์—ด) - ๋ฉ”๋ชจ๋ฆฌโ†‘, ์‹œ๊ฐ„โ†“ / ์ธ์ ‘๋ฆฌ์ŠคํŠธ(๋ฆฌ์ŠคํŠธ) - ๋ฉ”๋ชจ๋ฆฌโ†“, ์‹œ๊ฐ„โ†‘ - ๊ทธ๋ž˜ํ”„ vs ํŠธ๋ฆฌ ๊ทธ๋ž˜ํ”„ ํŠธ๋ฆฌ ๋ฐฉํ–ฅ์„ฑ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ / ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์ˆœํ™˜์„ฑ ์ˆœํ™˜ / ๋น„์ˆœํ™˜ ๋น„์ˆœํ™˜ ๋ฃจํŠธ ๋…ธ๋“œ ์กด์žฌ ์—ฌ๋ถ€ X O ๋…ธ๋“œ๊ฐ„ ๊ด€๊ณ„์„ฑ X ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„ ๋ชจ๋ธ์˜ ์ข…๋ฅ˜ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ ๊ณ„์ธต ๋ชจ๋ธ ์„œ๋กœ์†Œ ์ง‘ํ•ฉ - ์„œ๋กœ์†Œ ์ง‘ํ•ฉ: ๊ณตํ†ต ์›์†Œ๊ฐ€ ์—†๋Š” ๋‘ ์ง‘ํ•ฉ - ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ: ์„œ๋กœ์†Œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ๋“ค๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์›์†Œ๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ใ„ด union: 2๊ฐœ์˜ ์›์†Œ๊ฐ€ ํฌํ•จ๋œ ์ง‘ํ•ฉ์„ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ ใ„ด find: ํŠน์ •ํ•œ ์›์†Œ๊ฐ€ ์†ํ•œ ์ง‘ํ•ฉ์ด ์–ด๋–ค ์ง‘ํ•ฉ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ฐ์‚ฐ # ..

์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Shortest Path Algorithm)

๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• - 'ํ•œ ์ง€์ ์—์„œ ๋‹ค๋ฅธ ํŠน์ • ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ' - '๋ชจ๋“  ์ง€์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ' - ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ๋Š” ๋ณดํ†ต ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„ ใ„ด ๊ฐ ์ง€์ ์€ ๊ทธ๋ž˜ํ”„์—์„œ '๋…ธ๋“œ'๋กœ ํ‘œํ˜„๋˜๊ณ , ใ„ด ์ง€์  ๊ฐ„ ์—ฐ๊ฒฐ๋œ ๋„๋กœ๋Š” ๊ทธ๋ž˜ํ”„์—์„œ '๊ฐ„์„ '์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๊ทธ๋ž˜ํ”„์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ์„ ๋•Œ, ํŠน์ •ํ•œ ๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฐ๊ฐ์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•ด์ฃผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ - '์Œ์˜ ๊ฐ„์„ '์ด ์—†์„ ๋•Œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ - ๋งค๋ฒˆ '๊ฐ€์žฅ ๋น„์šฉ์ด ์ ์€ ๋…ธ๋“œ'๋ฅผ ์„ ํƒํ•ด์„œ ์ž„์˜์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ถ„๋ฅ˜ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1) ์ถœ๋ฐœ ๋…ธ๋“œ ์„ค์ • 2) ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™” 3)..

๋™์  ๊ณ„ํš๋ฒ• (Dynamic Programming)

์ค‘๋ณต๋˜๋Š” ์—ฐ์‚ฐ์„ ์ค„์ด์ž - ์–ด๋–ค ๋ฌธ์ œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์•ฝ๊ฐ„ ๋” ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋กœ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด ์žˆ๋‹ค. - ์ˆ˜ํ•™์  ์ ํ™”์‹์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๋‹ค. # ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ def fibo(x): if x == 1 or x == 2: return 1 return fibo(x-1) + fibo(x-2) print(fibo(4)) - ๊ทธ๋Ÿฐ๋ฐ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. - f(n) ํ•จ์ˆ˜์—์„œ n์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ! -> O(2^N) - ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ํ˜ธ์ถœ ๊ณผ์ •์„ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค..

์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Binary Search Algorithm)

์ˆœ์ฐจ ํƒ์ƒ‰ - ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• - ๋ณดํ†ต ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ - ๋ฐ์ดํ„ฐ ์ •๋ ฌ ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์›์†Œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ํ™•์ธ - ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N) ใ„ด ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ N๊ฐœ์ผ ๋•Œ ์ตœ๋Œ€ N๋ฒˆ์˜ ๋น„๊ต ์—ฐ์‚ฐ # ์ˆœ์ฐจ ํƒ์ƒ‰ def sequential_search(n, target, array): # ๊ฐ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉฐ for i in range(n): # ํ˜„์žฌ์˜ ์›์†Œ๊ฐ€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ์›์†Œ์™€ ๋™์ผํ•œ ๊ฒฝ์šฐ if array[i] == target: return i + 1 # ํ˜„์žฌ์˜ ์œ„์น˜ ๋ฐ˜ํ™˜ print("์ƒ์„ฑํ•  ์›์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅํ•œ ๋‹ค์Œ ํ•œ ์นธ ๋„๊ณ  ์ฐพ์„ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์„ธ์š”.") input_da..

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Sorting Algorithm)

์ •๋ ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ์„œ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ ์„ ํƒ ์ •๋ ฌ : ๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ด ๋งจ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฐ”๊พธ๊ณ , ๊ทธ๋‹ค์Œ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ด ์•ž์—์„œ ๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์™€ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณต -> ๋งค๋ฒˆ '๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ์„ ํƒ' - ์‹œ๊ฐ„๋ณต์žก๋„ O(N^2) ใ„ด ์—ฐ์‚ฐํšŸ์ˆ˜: N + (N-1) + (N-2) + ยทยทยท 2 โ†’ N*(N+1)/2 โ†’ O(N^2) ใ„ด ์†Œ์Šค์ฝ”๋“œ: 2์ค‘ ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ # ์„ ํƒ ์ •๋ ฌ array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i # ๊ฐ€์žฅ ์ž‘์€ ์›์†Œ์˜ ์ธ๋ฑ์Šค for j in range(i+1, len(array)): if array[min_index] > array[j]: min_in..

DFS / BFS (๊นŠ์ด์šฐ์„ ํƒ์ƒ‰ / ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰)

์Šคํƒ (LIFO) stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) # ์ตœํ•˜๋‹จ ์›์†Œ๋ถ€ํ„ฐ ์ถœ๋ ฅ print(stack[::-1]) # ์ตœ์ƒ๋‹จ ์›์†Œ๋ถ€ํ„ฐ ์ถœ๋ ฅ - ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด ๋ฆฌ์ŠคํŠธ์˜ append(), pop() ๋ฉ”์„œ๋“œ ์ด์šฉ ํ (FIFO) from collections import deque # ํ ๊ตฌํ˜„์„ ์œ„ํ•ด deque ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ queue = deque() queue.append(5) queue.append(2) queue.append(3) queue.append(7) queue.pop..

๊ตฌํ˜„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Implementation Algorithm)

๊ตฌํ˜„ '๋จธ๋ฆฟ์†์— ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์†Œ์Šค์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •' -> ๋ชจ๋“  ๋ฒ”์œ„์˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ ์œ ํ˜•์„ ํฌํ•จํ•˜๋Š” ๊ฐœ๋… -> ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ๋ฒ• ์ˆ™์ง€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ๋Š˜๋ ค์•ผ ํ•จ. ยท ์™„์ „ ํƒ์ƒ‰: ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฃผ์ € ์—†์ด ๋‹ค ๊ณ„์‚ฐํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ยท ์‹œ๋ฎฌ๋ ˆ์ด์…˜: ๋ฌธ์ œ์—์„œ ์ œ์‹œํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๋‹จ๊ณ„์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ์ง์ ‘ ์ˆ˜ํ–‰ ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ ์‚ฌํ•ญ - C/C++์—์„œ ๋ณ€์ˆ˜์˜ ํ‘œํ˜„ ๋ฒ”์œ„ (int 4๋ฐ”์ดํŠธ, long 8๋ฐ”์ดํŠธ -> ํŒŒ์ด์ฌ X, ์ž๋ฐ” BigInteger, C++ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•„์š”) - ํŒŒ์ด์ฌ์—์„œ ๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ (๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜ 1000 -> ๋ฉ”๋ชจ๋ฆฌ 4KB / ๋ฐฑ๋งŒ -> 4MB / ์ฒœ๋งŒ -> 40MB) ์ฑ„์  ํ™˜๊ฒฝ - ํŒŒ์ด์ฌ์€ C/C++์— ๋น„ํ•ด ๋™์ž‘ ์†๋„ ๋Š๋ฆผ. 1์ดˆ์— 2,000๋งŒ ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜..

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Greedy Algorithm)

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํƒ์š•๋ฒ•): ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ง€๊ธˆ ๋‹น์žฅ ์ข‹์€ ๊ฒƒ๋งŒ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ• - ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ๋Š” ๋ฌธ์ œ ํ’€์ด๋ฅผ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์ •๋‹นํ•œ์ง€ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ex) ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฌธ์ œ - ๊ฐ€์žฅ ํฐ ํ™”ํ ๋‹จ์œ„๋ถ€ํ„ฐ ๋ˆ์„ ๊ฑฐ์Šฌ๋Ÿฌ ์คŒ ใ„ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋™์ „ ์ค‘์—์„œ ํฐ ๋‹จ์œ„๊ฐ€ ํ•ญ์ƒ ์ž‘์€ ๋‹จ์œ„์˜ ๋ฐฐ์ˆ˜์ด๋ฏ€๋กœ ์ž‘์€ ๋‹จ์œ„๋“ค์„ ์ข…ํ•ฉํ•ด ๋‹ค๋ฅธ ํ•ด๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์—†๋‹ค! n = int(input()) cnt = 0 coin = [500, 100, 50, 10] for i in coin:# ์‹œ๊ฐ„ ๋ณต์žก๋„ O(K)