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

Algorithm/Programmers

(46)
[Programmers] ํŒŒ์ผ๋ช… ์ •๋ ฌ ํ•ด์„ค ์ฝ”๋“œ def solution(files): ans = [] head, number, tail = '','','' for file in files: for i in range(len(file)): # ์šฐ์„  ํŒŒ์ผ์„ head์™€ number๋กœ๋งŒ ๋‚˜๋ˆˆ๋‹ค. if file[i].isdigit(): head = file[:i] number = file[i:] # number์„ ๋‹ค์‹œ number์™€ tail๋กœ ๋‚˜๋ˆˆ๋‹ค. for k in range(len(number)): if not number[k].isdigit(): tail = number[k:] number = number[:k] break # ๋ฐฐ์—ด์— ๊ฐ๊ฐ์˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ ํ›„ head,number,tail๊ฐ’์„ resetํ•œ๋‹ค. ans.append([head,numb..
[Programmers] ๊ตฌ๋ช…๋ณดํŠธ ํ•ด์„ค ์ฝ”๋“œ def solution(people, limit): people.sort() i = 0 j = len(people) - 1 cnt = 0 while i
[Programmers] ์†Œ์ˆ˜ ์ฐพ๊ธฐ ํ•ด์„ค ์ฝ”๋“œ def solution(n): num = set(range(2,n+1)) for i in range(2,n+1): if i in num: num -= set(range(i*2,n+1,i)) return len(num) ๋ถ„์„ > set ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋จผ์ € ๋ฒ”์œ„ ๋‚ด์˜ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  i์˜ ๋ฐฐ์ˆ˜์ธ ์ง‘ํ•ฉ์„ ๋นผ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•˜์˜€๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์†Œ์ˆ˜ ์ฐพ๊ธฐ 1๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž n ์‚ฌ์ด์— ์žˆ๋Š” ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ์†Œ์ˆ˜๋Š” 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด์ง€๋Š” ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.) ์ œํ•œ ์กฐ๊ฑด n์€ 2์ด์ƒ programmers.co.kr
[Programmers] ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ ์ฝ”๋“œ def keypad(current_N,next_N): dic = {'1':[0,0],'2':[0,1],'3':[0,2],'4':[1,0],'5':[1,1],'6':[1,2],'7':[2,0],'8':[2,1],'9':[2,2],'*':[3,0],'0':[3,1],'#':[3,2]} x1,y1 = dic[current_N] x2,y2 = dic[next_N] return abs(int(x1) - int(x2)) + abs(int(y1) - int(y2)) def solution(numbers,hand): ans = '' left = '*' right = '#' for i in numbers: if i in [1,4,7]: left = str(i) ans += 'L' elif i in [3,6,9]: ..
[Programmers] ์œ„์žฅ ์ฝ”๋“œ def solution(arr): dict = {} for i in range(len(arr)): if arr[i][1] not in dict: dict[arr[i][1]] = [arr[i][0]] else: dict[arr[i][1]].append(arr[i][0]) k = list(dict.values()) cnt = 1 for i in k: cnt *= len(i) + 1 return cnt - 1 ๋ถ„์„ > ํ•ด์‹œ๋งต์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ํ–ˆ๋Š”๋ฐ, ์กฐํ•ฉ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์—์„œ ๋ง‰ํ˜”๋˜ ๋ฌธ์ œ์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง์œผ๋กœ ์•„์ด๋””์–ด๋ฅผ ์–ป์—ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ๋ฐฐ์—ด[[2,3,4],[1,0]] ์ด ์žˆ๋‹ค๋ฉด ์ฒซ๋ฒˆ์งธ ๋ฐฐ์—ด ๋‚ด์—์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์กฐํ•ฉ์˜ ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ..
[Programmers] K๋ฒˆ์งธ ์ˆ˜ ๋‚˜์˜ ์ฝ”๋“œ def solution(array, commands): arr = [] for i in range(len(commands)): num = array[commands[i][0]-1:commands[i][1]] num.sort(reverse=False) ans = num[commands[i][2]-1] arr.append(ans) return arr ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - K๋ฒˆ์งธ์ˆ˜ [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr
[Programmers] ์‹คํŒจ์œจ ๋‚˜์˜ ์ฝ”๋“œ def solution(N, stages): arr = [] hash = {} answer = [] stages.sort(reverse=False) for i in range(1,N+1): arr.append(i) for l in arr: if l in stages: hash[l] = stages.count(l)/len(stages[stages.index(l):]) else: hash[l] = 0 hash = sorted(hash.items(), key = lambda x: x[1], reverse=True) for i in range(len(hash)): answer.append(hash[i][0]) return answer ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์‹คํŒจ์œจ ์‹คํŒจ์œจ ์Šˆํผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž ์˜ค๋ ๋ฆฌ๋Š” ํฐ ๊ณ ..
[Programmers] ๋ชจ์˜๊ณ ์‚ฌ ๋ฌธ์ œ ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค. 1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ..