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

๐Ÿฅด์•Œ๊ณ ๋ฆฌ์ฆ˜

(7)
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค lv.2] ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ 2019 KAKAO BLIND RECRUITMENT msg = {"Enter":"๋‹˜์ด ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค.", "Leave":"๋‹˜์ด ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค."} nickname = {} def solution(record): answer = [] myRecord =[] for s in record: if s.split()[0] == "Enter" or s.split()[0] == "Change": nickname[s.split()[1]] = s.split()[2] if s.split()[0] == "Enter" or s.split()[0] == "Leave": myRecord.append([s.split()[1], s.split()[0]]) for i in myRecord: answer.append(nickname[i[0]] + msg[i[1]]) return answer
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] ์ •๋ ฌ(์„ ํƒ์ •๋ ฌ, ์‚ฝ์ž…์ •๋ ฌ, ํ€ต์ •๋ ฌ, ๊ณ„์ˆ˜์ •๋ ฌ) (2) 1ํŽธ์€ ์•„๋ž˜ ๋งํฌ๋กœ! https://jyoonit.tistory.com/30 [์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] ์ •๋ ฌ(์„ ํƒ์ •๋ ฌ, ์‚ฝ์ž…์ •๋ ฌ, ํ€ต์ •๋ ฌ, ๊ณ„์ˆ˜์ •๋ ฌ) โšก๏ธ ์„ ํƒ์ •๋ ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์žˆ์„ ๋•Œ, ์ด์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งจ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฐ”๊พธ๊ณ , ๊ทธ๋‹ค์Œ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ด ์•ž์—์„œ ๋‘๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์™€ ๋ฐ”๊พธ๊ณ  ... (๋ฐ˜๋ณต) #์„ ํƒ์ •๋ ฌ arr = list(m jyoonit.tistory.com โœ… ์˜ˆ์ œ : ์œ„์—์„œ ์•„๋ž˜๋กœ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง. ์ˆ˜์—ด์„ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ. ๐Ÿ’ก๋‚ด ํ’€์ด n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr = sorted(arr, reverse = True) for i in range(n - 1): print(arr[..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] ์ •๋ ฌ(์„ ํƒ์ •๋ ฌ, ์‚ฝ์ž…์ •๋ ฌ, ํ€ต์ •๋ ฌ, ๊ณ„์ˆ˜์ •๋ ฌ) โšก๏ธ ์„ ํƒ์ •๋ ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์žˆ์„ ๋•Œ, ์ด์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งจ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฐ”๊พธ๊ณ , ๊ทธ๋‹ค์Œ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ด ์•ž์—์„œ ๋‘๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์™€ ๋ฐ”๊พธ๊ณ  ... (๋ฐ˜๋ณต) #์„ ํƒ์ •๋ ฌ arr = list(map(int, input().split())) for i in range(len(arr)): min_index = i for j in range(i + 1, len(arr)): if arr[j] < arr[min_index] : min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] #swap print(arr) โžฐ์„ ํƒ์ •๋ ฌ์˜ ์‹œ๊ฐ„๋ณต์žก๋„ = O(n^2) โšก๏ธ ์‚ฝ์ž…์ •๋ ฌ 2๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์ •๋ ฌ์‹œ์ž‘. ์ž์‹ ์˜ ์•ž ์ธ๋ฑ์Šค ์ˆซ์ž์— ์ž๊ธฐ ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์žˆ์œผ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] DFS, BFS (2) 1ํŽธ์€ ์•„๋ž˜ ๋งํฌ๋กœ! https://jyoonit.tistory.com/28 [์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] DFS, BFS (1) ๐ŸŒ€ ๊ทธ๋ž˜ํ”„ ๐ŸŒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ทธ๋ž˜ํ”„๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Œ. 1. ์ธ์ ‘ํ–‰๋ ฌ : 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ 2. ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ : ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ #์ธ์ ‘ํ–‰๋ ฌ ๋ฐฉ์‹ INF = 999999999 graph = [ [0 jyoonit.tistory.com โœ…์˜ˆ์ œ : ์Œ๋ฃŒ์ˆ˜ ์–ผ๋ ค๋จน๊ธฐ n * m ํฌ๊ธฐ์˜ ์–ผ์Œํ‹€. 0์€ ๊ตฌ๋ช…์ด ๋šซ๋ ค์žˆ๋Š” ๋ถ€๋ถ„, 1์€ ์นธ๋ง‰์ด๊ฐ€ ์กด์žฌํ•˜๋Š” ๋ถ€๋ถ„. ๊ตฌ๋ฉ์ด ๋šซ๋ ค์žˆ๋Š” ๋ถ€๋ถ„๋ผ๋ฆฌ ์ƒํ•˜์ขŒ์šฐ๋กœ ๋ถ™์–ด์žˆ์œผ๋ฉด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ„์ฃผ. ์–ผ์Œ ํ‹€์˜ ๋ชจ์–‘์ด ์ฃผ์–ด์งˆ ๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ์–ผ์Œ์˜ ๊ฐœ์ˆ˜? ๐Ÿ’ก๋‚ด ํ’€์ด n, m = map(int, input().split()) icetray = lis..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] DFS, BFS (1) ๐ŸŒ€ ๊ทธ๋ž˜ํ”„ ๐ŸŒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ทธ๋ž˜ํ”„๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Œ. 1. ์ธ์ ‘ํ–‰๋ ฌ : 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ 2. ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ : ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ #์ธ์ ‘ํ–‰๋ ฌ ๋ฐฉ์‹ INF = 999999999 graph = [ [0, 7, 5], [7, 0, INF], [5, INF, 0] ] #์ธ์ ‘๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹ graph2 = [[] for i in range(3)] #๋…ธ๋“œ 0์— ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์ •๋ณด graph2[0].append((1, 7)) graph2[0].append((2, 5)) #๋…ธ๋“œ 1์— ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์ •๋ณด graph2[1].append((0,7)) #๋…ธ๋“œ 2.. graph2[2].append((0,5)) ๐ŸŒ€ DFS ๐ŸŒ€ Depth-First-Search, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ๋จผ์ € ํƒ์ƒ‰..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] ๊ตฌํ˜„ ๋ฌธ์ œ [์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค, ๋‚˜๋™๋นˆ] ์ฑ…์„ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐ŸŒ€๊ตฌํ˜„ ๋ฌธ์ œ : ์ด ์ฑ…์—์„œ๋Š” ์™„์ „ ํƒ์ƒ‰๊ณผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์œ ํ˜•์„ ๊ตฌํ˜„ ๋ฌธ์ œ๋กœ ๋ฌถ์–ด์„œ ๋‹ค๋ฃจ๊ณ  ์žˆ์Œ. : ๋จธ๋ฆฌ ์†์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ. โœ… ์˜ˆ์ œ : ์ƒํ•˜์ขŒ์šฐ ์—ฌํ–‰๊ฐ€ A๋Š” n * n ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ๊ณต๊ฐ„์— ์žˆ๋‹ค. ์—ฌํ–‰๊ฐ€์˜ ๊ณ„ํš์„œ์—๋Š” LRUD(์™ผ, ์˜ค, ์œ„, ์•„๋ž˜)๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ํ˜€์žˆ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์„ ๋ฒ—์–ด๋‚˜๋Š” ์›€์ง์ž„์€ ๋ฌด์‹œํ•จ. ์ตœ์ข… ๋„์ฐฉ์ง€์˜ ์ขŒํ‘œ๋ฅผ ๊ตฌํ•˜์‹œ์˜ค. (์•„๋ž˜ ๋ฐฉํ–ฅ x์ถ•, ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ y ์ถ•) ๐Ÿ’ก๋‚ด ํ’€์ด n = int(input()) plan = list(input().split()) x = 1 y = 1 for i in plan: if (i == 'R') and (y != n): y += 1 elif (i == 'L') and (y..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ] ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ Greedy!!! [์ด๊ฑฐ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค, ๋‚˜๋™๋นˆ] ์ฑ…์„ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐ŸŒ€๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐ŸŒ€ : ์ง€๊ธˆ ๋‹น์žฅ ์ข‹์€ ๊ฒƒ๋งŒ ๊ณ ๋ฅด๊ธฐ๐Ÿฅด โœ… ์˜ˆ์ œ 1) ๊ฑฐ์Šค๋ฆ„๋ˆ N์›์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผํ•จ. ์นด์šดํ„ฐ์—๋Š” 500, 100, 50, 10์›์งœ๋ฆฌ ๋™์ „์ด ๋ฌดํ•œํžˆ ์žˆ์Œ. ๊ฑฐ์Šฌ๋Ÿฌ์ค˜์•ผ ํ•  ๋™์ „์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋Š”? (N์€ ํ•ญ์ƒ 10์˜ ๋ฐฐ์ˆ˜์ž„) ๋‚˜์˜ ํ’€์ด~~~~ N = int(input()) num = 0 while 1: if N > 500: N = N - 500 num += 1 elif N > 100: N = N - 100 num += 1 elif N > 50: N = N - 50 num += 1 elif N > 10: N = N - 10 num += 1 else : break print(num) ์‹คํ–‰ ๊ฒฐ๊ณผ ๋‹ต์•ˆ์˜ˆ์‹œ๋ฅผ ๋ณด๋‹ˆ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์ฐธ ๊ธธ์–ด๋ณด์ธ๋‹ค..