๐Ÿ’ป๊ฐœ๋ฐœ๊ณต๋ถ€/Algorithm 8

[JS ์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค K๋ฒˆ์งธ ์ˆ˜

https://programmers.co.kr/learn/courses/30/lessons/42748?language=javascript ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - K๋ฒˆ์งธ์ˆ˜ [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr ๐Ÿ“ ๋ฌธ์ œ ๐Ÿ“ ํ’€์ด ์‚ฌ์šฉํ•œ ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. slice(start, end): start ์ธ๋ฑ์Šค๋ถ€ํ„ฐ end ์ธ๋ฑ์Šค ์ด์ „๊นŒ์ง€ ์Šฌ๋ผ์ด์‹ฑํ•œ ๋ฐฐ์—ด ๋ฐ˜ํ™˜ sort: ์ •๋ ฌ๋ฉ”์†Œ๋“œ push: ๋ฐฐ์—ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›์†Œ ์ถ”๊ฐ€๋จ ์ฝ”๋“œ ์ž‘์„ฑ์€ ์–ด๋ ต์ง€์•Š์€๋ฐ, sort() ์ •๋ ฌ๋ถ€๋ถ„์—์„œ ์ฃผ์˜ํ• ์ ์ด ์žˆ๋‹ค. ๋งŒ์•ฝ ๋‹ค์Œ๊ณผ๊ฐ™์ด sort()๋งŒ ํ•ด์ฃผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด์„œ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋น„๋ฐ€์ง€๋„ Python (์นด์นด์˜ค ๊ธฐ์ถœ)

https://programmers.co.kr/learn/courses/30/lessons/17681?language=python3 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [1์ฐจ] ๋น„๋ฐ€์ง€๋„ ๋น„๋ฐ€์ง€๋„ ๋„ค์˜ค๋Š” ํ‰์†Œ ํ”„๋กœ๋„๊ฐ€ ๋น„์ƒ๊ธˆ์„ ์ˆจ๊ฒจ๋†“๋Š” ์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ค„ ๋น„๋ฐ€์ง€๋„๋ฅผ ์†์— ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋น„๋ฐ€์ง€๋„๋Š” ์ˆซ์ž๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์–ด ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค programmers.co.kr ํ’€์ด๊ณผ์ • ์š”์•ฝ ๋น„ํŠธ์—ฐ์‚ฐ์ž or์„ ์‚ฌ์šฉํ•œ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋ฅผ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•ด์„œ ์ €์žฅํ•œ๋‹ค. ์ด์ง„์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•˜๋ฉด์„œ 1์€ #์œผ๋กœ, 0์€ ๊ณต๋ฐฑ์œผ๋กœ ๋ฌธ์ž์—ด ์น˜ํ™˜์„ ํ•ด์ฃผ์—ˆ๋‹ค. ์ „์ฒด ์ฝ”๋“œ def solution(n, arr1, arr2): answer = [] dec_arr = list(zip(arr1, arr2)) bin_arr = [..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํŠœํ”Œ Python (์นด์นด์˜ค ๊ธฐ์ถœ)

https://programmers.co.kr/learn/courses/30/lessons/64065 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํŠœํ”Œ "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr ํ’€์ด๊ณผ์ • ์ค‘๋ณต๋˜๋Š” ์›์†Œ๊ฐ€ ์—†๋Š” ํŠœํ”Œ์„ ์ง‘ํ•ฉ๊ธฐํ˜ธ๋กœ ํ‘œํ˜„๋œ ์ž…๋ ฅ์ด ์ฃผ์–ด์ง„๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ํŠœํ”Œ์ด (2, 1, 3, 4)์ธ ๊ฒฝ์šฐ {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}} {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}} {{1, 2, 3}, {2, 1}, {1, 2, 4,..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ (Python)

โญLevel 2 https://programmers.co.kr/learn/courses/30/lessons/42888 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ์นด์นด์˜คํ†ก ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์—์„œ๋Š” ์นœ๊ตฌ๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ๋“ค๊ณผ ๋Œ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ณธ๋ž˜ ๋‹‰๋„ค์ž„์ด ์•„๋‹Œ ๊ฐ€์ƒ์˜ ๋‹‰๋„ค์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ„ํŒ…๋ฐฉ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์‹ ์ž…์‚ฌ์›์ธ ๊น€ํฌ๋ฃจ๋Š” ์นด์นด์˜คํ†ก ์˜ค programmers.co.kr ์ฝ”๋“œ (Python) def solution(record): answer = [] dic = {} for i in record: temp = i.split() if temp[0] == "Enter" or temp[0] == "Change": dic[temp[1]] = temp[2] else: # Leave continue for i in reco..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‚˜๋จธ์ง€ ํ•œ ์  (Python)

์ตœ๊ทผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฐ๋ชจ ์˜ˆ์ œ๋กœ ๋‚˜์™”๋˜ ๋ฌธ์ œ์ด๋‹ค. https://programmers.co.kr/learn/courses/18/lessons/1878 ์„ธ๊ฐœ์˜ ์ขŒํ‘œ๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๊ณ , ์ง์‚ฌ๊ฐํ˜•์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋‚˜๋จธ์ง€ ํ•œ๊ฐœ์˜ ์ขŒํ‘œ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ ๋ณ€์ด x, y์ถ•๊ณผ ํ‰ํ–‰ํ•˜๊ณ , ์„ธ ์ ์„ ๊ทธ๋ ค๋ณด๋ฉด x์™€ y์—์„œ ํ•œ๋ฒˆ์”ฉ๋งŒ ๋‚˜์˜จ ๊ฐ’์˜ ์ขŒํ‘œ๊ฐ€ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ–๊ฒŒ๋œ๋‹ค. ์ •๋‹ต ์ฝ”๋“œ def solution(v): # x, y์ขŒํ‘œ๊ฐ€ ๋“ค์–ด๊ฐˆ ๋ฆฌ์ŠคํŠธ x = [] y = [] answer = [] # ์ด์ค‘๋ฐฐ์—ด ์ˆœํšŒ for i in v: if i[0] not in x: x.append(i[0]) else: x.remove(i[0]) if i[1] not in y: y.append(i[1]) else: y.remove(i[1]..

๋ฐฑ์ค€ 9095: 1,2,3 ๋”ํ•˜๊ธฐ (DP)

https://www.acmicpc.net/problem/9095 9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํŠน์ • ์ˆซ์ž๋ฅผ ์ฃผ์–ด์ง„ ์ •์ˆ˜๋“ค์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ๋ฌธ์ œ์ด๋‹ค. ์ •์ˆ˜ 4๋ฅผ 1,2,3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ชจ๋“  ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ •์ˆ˜ n์€ ์–‘์ˆ˜์ด๋ฉฐ 11๋ณด๋‹ค ์ž‘๋‹ค๊ณ  ์ฃผ์–ด์กŒ์œผ๋ฏ€๋กœ 1๋ถ€ํ„ฐ ๊ตฌํ•ด๋ณธ๋‹ค๋ฉด, 1์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” 1๋งŒ ํ•„์š”ํ•˜๊ธฐ๋•Œ๋ฌธ์— => 1๊ฐ€์ง€ 2๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” (1+1), (2) => 2๊ฐ€์ง€ 3์„ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด (1+1+1), (1+2), (2+1), (3) => 4๊ฐ€์ง€ ์˜ˆ์ œ์—์„œ ์ฃผ์–ด์ง„ 4๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์˜ 1~3๊นŒ์ง€์˜ ๊ฐ€์ง€์ˆ˜๋ฅผ ..

๋ฐฑ์ค€ 10826: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 4 (DP)

10826๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 4 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0๊ณผ 1๋กœ ์‹œ์ž‘ํ•œ๋‹ค. 0๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 0์ด๊ณ , 1๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ 2๋ฒˆ์งธ ๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์•ž ๋‘ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์˜ ํ•ฉ์ด ๋œ๋‹ค. ์ด๋ฅผ ์‹์œผ๋กœ ์จ๋ณด๋ฉด Fn = Fn-1 + Fn-2 (n ≥ 2)๊ฐ€ www.acmicpc.net ์ผ๋ฐ˜์ ์ธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๋ฌธ์ œ. ์•„๋ž˜์ฒ˜๋Ÿผ ์žฌ๊ท€๋กœ ํ’€์—ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. n = int(input()) def fibo(x): if x==0: return 0 elif x==1: return 1 else: return fibo(x-1) + fibo(x-2) print("%d" % fibo(n)) ์žฌ๊ท€๋กœ ํ’€๋ฉด ์ •์ˆ˜ x๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์—ฐ์‚ฐ์‹œ๊ฐ„์ด ๊ทธ๋งŒํผ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ’€์ดํ•˜๊ณ , ์ฒ˜์Œ์— 0๊ณผ 1์„ ..

[์ž๋ฃŒ๊ตฌ์กฐ] ๋ฐํฌ(Deque)์ดํ•ดํ•˜๊ธฐ

1. Deque์˜ ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ Deque(๋ฐํฌ)๋Š” double-ended-queue์˜ ์ค„์ž„๋ง๋กœ, ์–‘๋ฐฉํ–ฅ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” queueํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด, ์–‘๋ฐฉํ–ฅ์—์„œ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ์–‘๋ฐฉํ–ฅ ํ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 2. Deque์— ์กด์žฌํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ Python์—์„œ deque๋Š” collections๋ผ๋Š” ๋ชจ๋“ˆ์•ˆ์— dequeํด๋ž˜์Šค๋กœ ๋‚ด์žฅ๋˜์–ด์žˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ append() ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. from collections import deque deq = deque(['a', 'b', 'c']) deq.append('d') print(deq) # deque(['a', 'b', 'c', 'd']) ๊ธฐ๋ณธ append()๋ฅผ ํ•ด์ฃผ๋ฉด ์œ„์˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๊ฐ€์žฅ ..