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

Algorithm 237

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง์…ˆ (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์ด์ƒ์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์•„๋‹๊ฒฝ์šฐ ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด์„ ๋ถ™์—ฌ์ฃผ๋Š” ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„ (level 1)

๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/77484/ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„ ๋กœ๋˜ 6/45(์ดํ•˜ '๋กœ๋˜'๋กœ ํ‘œ๊ธฐ)๋Š” 1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ 6๊ฐœ๋ฅผ ์ฐ์–ด์„œ ๋งžํžˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ณต๊ถŒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋กœ๋˜์˜ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. 1 ์ˆœ์œ„ ๋‹น์ฒจ ๋‚ด์šฉ 1 6๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ 2 5๊ฐœ ๋ฒˆํ˜ธ programmers.co.kr ๋‚˜์˜ ํ’€์ด ๋งž์ถ˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์„œ ๋“ฑ์ˆ˜๋Š” ์ธ๋ฑ์Šค๋กœ ๋ฝ‘์•„์˜จ๋‹ค. lottos์™€ win nums ์‚ฌ์ด์—์„œ ๊ฒน์น˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌํ•œ ๋’ค, ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด ์ตœ์ € ์ˆœ์œ„๋ฅผ ๊ตฌํ•œ๋‹ค. 0์ผ ๊ฒฝ์šฐ์—๋Š” '๋ฌด์กฐ๊ฑด ๋งž์ถ˜๋‹ค'๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ตœ๊ณ  ์ˆœ์œ„๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์ €์ˆœ์œ„๋กœ ์‚ฐ์ •๋๋˜ ๊ฐฏ์ˆ˜์— 0์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋”ํ•ด์ค€๋‹ค. ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฐ์ผ“๋ชฌ (level 1)

๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/1845 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํฐ์ผ“๋ชฌ ๋‹น์‹ ์€ ํฐ์ผ“๋ชฌ์„ ์žก๊ธฐ ์œ„ํ•œ ์˜ค๋žœ ์—ฌํ–‰ ๋์—, ํ™ ๋ฐ•์‚ฌ๋‹˜์˜ ์—ฐ๊ตฌ์‹ค์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™ ๋ฐ•์‚ฌ๋‹˜์€ ๋‹น์‹ ์—๊ฒŒ ์ž์‹ ์˜ ์—ฐ๊ตฌ์‹ค์— ์žˆ๋Š” ์ด N ๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘์—์„œ N/2๋งˆ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ์ข‹๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. programmers.co.kr ๋‚˜์˜ ํ’€์ด ํฐ์ผ“๋ชฌ์˜ ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ ์—†์• ์ค€ ํ›„ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด์ค€๋‹ค. ์ตœ์ข… n๊ฐœ์—์„œ n/2๊ฐœ์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ, n/2 ๊ฐ’์„ ๊ตฌํ•ด์ค€๋‹ค. ์œ„์˜ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋ช‡ ์ข…๋ฅ˜๋ฅผ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณธ๋‹ค. def solution(nums): have = len(nums)/2 total = set(nums) total_len = len(total) if h..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํƒ์š•๋ฒ•(greedy) - ์ฒด์œก๋ณต

๋ฌธ์ œ๋งํฌ ๋‚˜์˜ ํ’€์ด ์šฐ์„  ์—ฌ๋ถ„์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํ•™์ƒ์ด ๋งŒ์•ฝ ๋„๋‚œ์„ ๋‹นํ–ˆ์„ ๋•Œ๋Š” ์•„๋ฌดํ•œํ…Œ๋„ ๋นŒ๋ ค์ค„์ˆ˜๊ฐ€ ์—†๊ธฐ์— lost์™€ reserve์— ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์žˆ์œผ๋ฉด ์ œ๊ฑฐ ํ•ด์ฃผ๋Š” ๊ณผ์ •๋ถ€ํ„ฐ ๊ฑฐ์ณค๋‹ค. ์ง‘ํ•ฉ์€ ์ฐจ์ง‘ํ•ฉ์„ ์ด์šฉํ•ด์„œ ์›ํ•˜๋Š” ์›์†Œ๋ฅผ ๋บ„ ์ˆ˜ ์žˆ๊ธฐ์— ๊ฐ„๋‹จํ•˜๊ฒŒ set (์ง‘ํ•ฉ)์„ ์ด์šฉํ–ˆ๋‹ค. for ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด์„œ ์žƒ์–ด๋ฒ„๋ฆฐ ํ•™์ƒ (lost)์„ ํ•œ๋ช…์”ฉ ๋ฝ‘์•„ ๋ณด์•˜๊ณ , ํ•ด๋‹น ํ•™์ƒ์ด reserve์—์„œ ๋นŒ๋ฆด ์ˆ˜์žˆ๋Š”์ง€ ํŒ๋‹จํ–ˆ๋‹ค. ๋งŒ์•ฝ reserve์—์„œ lost์—๊ฒŒ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, lost ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ญ์ œํ•ด๋ฒ„๋ฆฌ๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณค๋‹ค. ๋งŒ์•ฝ reserve์—์„œ ๋นŒ๋ ค์ค„ ์ˆ˜์—†๋‹ค๋ฉด, ๊ทธ ํ•™์ƒ์€ ์ˆ˜์—…์„ ๋ชป๋“ฃ๋Š” ๊ฒƒ์ด๊ธฐ์— '์ „์ฒดํ•™์ƒ์ˆ˜'์—์„œ -1 ํ•ด์คฌ๋‹ค. (์–ด์ฐจํ”ผ ์ˆ˜์—…๋“ฃ๋Š” ํ•™์ƒ์€ ์ฒ˜์Œ์— n์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.) def solution(n, lost, rese..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€(1์ฃผ์ฐจ) - ๋ถ€์กฑํ•œ ๊ธˆ์•ก ๊ณ„์‚ฐํ•˜๊ธฐ

๋ฌธ์ œ๋งํฌ ๋ฌธ์ œํ’€์ด countํšŸ์ˆ˜๋ฅผ price์— ๊ณฑํ•ด์ฃผ๋ฉด์„œ total์„ ๊ตฌํ•˜๊ณ  money์™€์˜ ์ฐจ๋ฅผ ๊ตฌํ•œ๋‹ค. ์ฐจ์ด๊ฐ€ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋‚˜์˜ค๋ฉด, ๋ˆ์ด ๋ถ€์กฑํ•˜์ง€ ์•Š๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ 0์„ ๋ฆฌํ„ดํ•œ๋‹ค. def solution(price, money, count): # ๋‚ด์•ผ ํ•  ์ด ๊ธˆ์•ก total = 0 for i in range(1,count+1): total += (price*i) result = total - money if result < 0 : result = 0 return result ๋‹ค๋ฅธ์‚ฌ๋žŒํ’€์ด ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์งฏ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๋‹จ์ˆœํ•œ ์‚ฐ์ˆ ํ‰๊ท ์„ ์ด์šฉํ•ด์„œ ํ‘ผ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๊ฐ€ ๋ˆˆ์— ๋„์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋˜๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„๋„ ๊ต‰์žฅํžˆ ์ค„์–ด๋“ค๊ณ , ๋น ๋ฅธ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” total ๊ณผ money์˜ ์ฐจ๋ฅผ resu..

๋ฐ˜์‘ํ˜•