Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป
๋ฐ˜์‘ํ˜•

Algorithm/Programmers 55

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ •๋ ฌ - ๊ฐ€์žฅ ํฐ ์ˆ˜ (level.2)

๋ฌธ์ œ ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42746/ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์žฅ ํฐ ์ˆ˜ 0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ programmers.co.kr ๋‚˜์˜ ํ’€์ด permutation์€ ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ํ†ต๊ณผ๊ฐ€ ํž˜๋“ฆ lambdaํ•จ์ˆ˜ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ x3 ํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ์ด ๊ณผ์ •์€ ์ธํ„ฐ๋„ท์„ ์ฐธ๊ณ ํ•จ.. ๋ฌธ์ž์—ด์„ ์‚ฌ์ „์ ์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ์œ„ํ•ด์„œ x3ํ•ด์ค€๋‹ค๋Š” ๊ฒฝ์ด๋กœ์šด ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋จ. ์ •๋ ฌ๊ณผ ๊ด€๋ จ๋œ ๊ณต๋ถ€๊ฐ€ ๋” ํ•„์š”ํ•  ๊ฒƒ ใ… ใ…  # permutatio..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ •๋ ฌ-k๋ฒˆ์งธ ์ˆ˜ (level.1)

๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42748 ๋‚˜์˜ ํ’€์ด for๋ฌธ์œผ๋กœ commands๋ฅผ ๋Œ์•„๊ฐ€๋ฉด์„œ ์ถœ๋ ฅ alist์— ์งœ๋ฅธ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ด๊ณ  new์— answer ์ฐจ๋ก€๋Œ€๋กœ append # ์ฒซ๋ฒˆ์งธ๋กœ ์˜ˆ์ „์— ํ’€์—ˆ๋˜ ํ’€์ด # def solution(array, commands): # answer = [] # for i in range(len(commands)): # a = int(commands[i][0]) - 1 #2-1=1 # b = int(commands[i][1]) - 1 #5-1=4 # c = int(commands[i][2]) - 1 #3-1=2 # new = array[a:b+1] # new.sort() # answer.append(new..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ•ด์‹œ-์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (level.1)

๋ฌธ์ œ ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42577 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ์ ํžŒ ์ „ํ™”๋ฒˆํ˜ธ ์ค‘, ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ, ๊ตฌ์กฐ๋Œ€ ์ „ํ™”๋ฒˆํ˜ธ๋Š” ์˜์„์ด์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ ‘๋‘์‚ฌ์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ programmers.co.kr ๋‚˜์˜ํ’€์ด ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก์— ์žˆ๋Š” ์ „ํ™”๋ฒˆํ˜ธ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถ”์ถœ ์ถ”์ถœ๋œ ์ „ํ™”๋ฒˆํ˜ธ ๋‚ด์—์„œ ํ•œ๊ธ€์ž์”ฉ ๋ฝ‘์•„์„œ n์— ์ €์žฅ n์ด ์ถ”์ถœ๋œ์ „ํ™”๋ฒˆํ˜ธ์™€ ๊ฐ™์ง„ ์•Š์ง€๋งŒ, ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ (์ถ”๊ฐ€) dic ๊ตฌ์„ฑ ์ดˆ๋ฐ˜์—๋Š” ์ด๋ ‡๊ฒŒ๋งŒ ํ’€์—ˆ์—ˆ๋‹ค. ๊ทผ๋ฐ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋œจ๋ฉด์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ์–ด๋–ป๊ฒŒํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, ์ธํ„ฐ๋„ท์˜ ๋„์›€์„ ๋ฐ›์•—๋‹ค..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ•ด์‹œ-์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ ( level.1)

๋ฌธ์ œ ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42576 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ ์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜ programmers.co.kr ๋‚˜์˜ ํ’€์ด ์ผ๋ฐ˜์ ์œผ๋กœ ๊ตฌํ˜„๋ฐฉ์‹๋ง๊ณ  "ํ•ด์‹œ"๋ผ์„œ ์ตœ๋Œ€ํ•œ dic์„ ํ™œ์šฉํ•ด์„œ ํ’€๋ ค๊ณ  ๋…ธ๋ ฅํ•ด๋ดค๋‹ค. ํ™•์‹คํžˆ ํšจ์œจ์„ฑ, ์‹œ๊ฐ„๋ณต์žก๋„ ์ธก๋ฉด์—์„œ key๊ฐ’์„ ํ™œ์šฉํ•œ hash ๋ฐฉ๋ฒ•์ด ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค!! hash๋Š” ๋ชจ๋“  ๊ฐ’์„ ์ˆซ์ž๋กœ? ์ฒ˜๋ฆฌ hash ๊ฐ’์„ key๊ฐ’์œผ๋กœ ๊ฐ–๊ณ  ์ด๋ฆ„์„ value๊ฐ’์œผ๋กœ ๊ฐ–๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ƒ์„ฑ participant ์— ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฆ„์˜..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง์…ˆ (level.1)

๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/77884 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง์…ˆ ๋‘ ์ •์ˆ˜ left์™€ right๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. left๋ถ€ํ„ฐ right๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๋“ค ์ค‘์—์„œ, ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ์ˆ˜๋Š” ๋”ํ•˜๊ณ , ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ธ ์ˆ˜๋Š” ๋บ€ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ programmers.co.kr ๋‚˜์˜ ํ’€์ด def solution(left, right): newlist = [] for num in range(left, right+1): ylist = [] #num์ด ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™” for i in range(1, num+1): if num % i == 0: ylist.append(i) if l..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์†Œ์ˆ˜ ๋งŒ๋“ค๊ธฐ (level.1)

๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/12977 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์†Œ์ˆ˜ ๋งŒ๋“ค๊ธฐ ์ฃผ์–ด์ง„ ์ˆซ์ž ์ค‘ 3๊ฐœ์˜ ์ˆ˜๋ฅผ ๋”ํ–ˆ์„ ๋•Œ ์†Œ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ˆซ์ž๋“ค์ด ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด nums๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, nums์— ์žˆ๋Š” ์ˆซ์ž๋“ค ์ค‘ ์„œ๋กœ ๋‹ค๋ฅธ 3๊ฐœ๋ฅผ ๊ณจ๋ผ ๋”ํ–ˆ์„ ๋•Œ programmers.co.kr ๋‚˜์˜ ํ’€์ด ์†Œ์ˆ˜์ž„์„ ํ™•์ธํ•˜๋Š” checkํ•จ์ˆ˜์™€, ๋ฉ”์ธํ•จ์ˆ˜์ธ solution ํ•จ์ˆ˜๋กœ ๊ตฌ์„ฑํ–ˆ๋‹ค. check์—์„œ๋Š” 2๋ถ€ํ„ฐ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉฐ ๋‚˜๋ˆ ๋ณด๊ณ , ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋‚˜์˜ค๋Š”์ˆœ๊ฐ„ False๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ํ•˜๋ฉด์„œ ์†Œ์ˆ˜๋ฃฐ ๊ตฌ๋ณ„ํ–ˆ๋‹ค. solution์—์„œ๋Š” combination ํ•จ์ˆ˜๋กœ 3๊ฐœ์”ฉ ์กฐํ•ฉ์„ ์ด๋ค„๋†“๊ณ , sum์„๊ตฌํ•ด checkํ•จ์ˆ˜๋กœ ๋ณด๋ƒˆ๋‹ค. checkํ•จ์ˆ˜..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ (level 1, ์นด์นด์˜ค)

๋ฌธ์ œ๋งํฌ ๋‚˜์˜ ํ’€์ด ๊ตฌํ˜„ ์Šคํƒ€์ผ๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ทœ์น™ ์กฐ๊ฑด์„ ํ’€์–ด๋‚˜๊ฐ”๋‹ค. def solution(new_id): new = '' # ๊ทœ์น™1 (๋Œ€->์†Œ) new_id = new_id.lower() # ๊ทœ์น™2 (์ด๋ชจ์ง€ ์—†์• ๊ธฐ) emoj = ["~","!", "@","#","$","%","^","&","*","(",")","=","+","[","]","{","}",":","?",",","","/"] for i in new_id: if i not in emoj: new += i #๊ทœ์น™3 (์—ฐ์†์ด๋ฉด์—†์• ๊ณ ) while '..' in new: new = new.replace('..', '.') #๊ทœ์น™4 (์ฒ˜์Œ๊ณผ ๋ ์ ์‚ญ์ œ) while len(new)>0: if new[0] == '.': new = new[1:] else:..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์Œ์–‘ ๋”ํ•˜๊ธฐ (level.1)

๋ฌธ์ œ๋งํฌ ๋‚˜์˜ ํ’€์ด absolutes์™€ signs๊ฐ€ ์„œ๋กœ ๊ฐ™์€์œ„์น˜์— ๊ฐ™์€ ๋ถ€ํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ์— ๊ทธ๋ƒฅ ์ธ๋ฑ์Šค๋กœ ๋น„๊ต def solution(absolutes, signs): total = 0 for i in range(0, len(absolutes)): if signs[i] == True: total += absolutes[i]*(1) else: total += absolutes[i]*(-1) return total ๋‹ค๋ฅธ์‚ฌ๋žŒํ’€์ด def solution(absolutes, signs): return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs)) ์ฝ”๋“œ๋ฅผ ์งง๊ฒŒ์งœ๋ ค๊ณ  ๋” ๋…ธ๋ ฅํ•ด๋ณด๊ณ  ๋” ๊ณ ๋ฏผํ•ด๋ดค์ง€๋งŒ ํฌ๊ธฐํ–ˆ๋‹ค. ํ•˜..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด

๋ฌธ์ œ๋งํฌ ๋‚˜์˜ ํ’€์ด - ํ’€์ด์‹œ๊ฐ„ : 25๋ถ„ ๋ฌธ์ž์—ด s์—์กด์žฌํ•˜๋Š” ๋‹จ์–ด ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋ฝ‘์•„์„œ text ์™€ num ๋ฆฌ์ŠคํŠธ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ ์ •๋‹ต ์ถœ๋ ฅ def solution(s): text = ['zero','one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight','nine','ten'] num = ['1', '2', '3','4','5','6','7','8','9','0'] word = '' result = '' s = list(s) while len(s) > 0: word += s.pop(0) if word in num: result += word word = '' elif word in text: result += str(text.ind..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ตฌํ˜„ - ๋ฌธ์ž์—ด ์••์ถ•

๋ฌธ์ œ๋งํฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฌธ์ž์—ด ์••์ถ• ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜๊ณ  ์‹ถ์€ "์–ดํ”ผ์น˜"๋Š” ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ๋น„์†์‹ค ์••์ถ• ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฌธ programmers.co.kr ๋‚˜์˜ ํ’€์ด - ๊ฑธ๋ฆฐ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์˜ ์ ˆ๋ฐ˜๊ธธ์ด๋งŒํผ ์••์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ len(s)//2 ๊นŒ์ง€๋งŒ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆผ ์•ž์—์„œ ๋ถ€ํ„ฐ num ๋งŒํผ ์งœ๋ฅธ ๋‹จ์–ด๋ฅผ now๋กœ ๋†“๊ณ , now๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ต๋ฅผ ์‹ค์‹œ now ๋’ค์— ๊ธธ์ด num๋งŒํผ ์งœ๋ฅธ ๋‹จ์–ด๋ฅผ nex๋ผ๊ณ  ์ง€์ • now์™€ nex๋ฅผ ๋น„๊ตํ•˜๋ฉด์„œ result์— ์—ฐ๊ฒฐ์‹œ์ผœ์คŒ 2๋ฒˆ ์ด์ƒ ๋“ฑ์žฅํ• ๋•Œ๋งŒ ์ˆซ์ž๋ฅผ ์ ์–ด์ฃผ๋ฏ€๋กœ if๋ฌธ์„ ํ™œ์šฉํ•ด์„œ count ๊ฐ’์„ 2์ด์ƒ์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์•„๋‹๊ฒฝ์šฐ ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด์„ ๋ถ™์—ฌ์ฃผ๋Š” ..

๋ฐ˜์‘ํ˜•