์ „์ฒด ๊ธ€

์„ฑ์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋…ธ๋ ฅ์ค‘ ์ž…๋‹ˆ๋‹ค
Type Challenges ์‹œ์ž‘์ด๋ฒˆ์— ์Šคํ”„๋ฆฐํŠธ์—์„œ ์ƒˆ๋กœ ๋ฐฐ์ •๋ฐ›์€ ๋ฉ˜ํ† ๋‹˜์˜ ์ถ”์ฒœ์„ ๋ฐ›์•„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.  ๋ฌธ์ œ์ฒซ ๋ฌธ์ œ๋Š” utility type์ธ Pick์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‚œ์ด๋„๋Š” easy ํ’€์ด๊ณผ์ •type MyPick = {[key in K]:T[K]} ์ตœ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ธํ„ฐ๋„ท ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด๋ ค๊ณ  ํ•˜์ง€ ์•Š์•˜๋‹ค.  ์ฐจ๊ทผ์ฐจ๊ทผ ์ƒ๊ฐํ•˜๋ฉฐ ํ’€์—ˆ๋‹ค.  ๋ฐ‘์— ๊ฒƒ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค. 1๋ถ„ ๋™์•ˆ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋‚ด๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ–ˆ๋‹จ ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค. type MyPick = {[key in K]:T[key]} T[K] ๋ฅผ T[key]๋กœ ๋ฐ”๊ฟจ๋‹ค. ์—๋Ÿฌ๋Š” ๋‹ค ์‚ฌ๋ผ์กŒ์ง€๋งŒ ์ด๊ฒŒ ์ •๋‹ต์ธ์ง„ ๋ชจ๋ฅด๊ฒ ๋„ค?  ๋ฐ”๋กœ ์ด์Šˆ๋ฅผ ๋‚จ๊ธฐ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋น„์Šทํ•œ ๋‹ต์•ˆ์ด ์žˆ์„ ๊ฒฝ์šฐ thumb up๋งŒ ๋‚จ๊ฒจ๋‹ฌ๋ผ๊ณ  ํ•ด์„œ ์ผ๋‹จ ์ •๋‹ต๋“ค์„ ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ •๋‹ต๋“ค ์‚ดํŽด๋ณด๊ธฐ ์ •๋‹ต๋“ค์„ ..
๋ฌธ์ œ ๋งํฌhttps://leetcode.com/problems/letter-combinations-of-a-phone-number/description/  ๋ฌธ์ œ ์„ค๋ช… ๊ฐ„๋‹จํ•œ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ์ •์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์–ด๋ ต์ง€๋Š” ์•Š์•˜๊ณ  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋„ ์ „๋ถ€ ํ†ต๊ณผ๋ฅผ ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์œ„ํ•œ ์ ‘๊ทผ์„ ์กฐ๊ธˆ์€ ์–ด์ƒ‰ํ•˜๊ฒŒ ํ•œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๊ธฐ์— ๊ทธ ๋ถ€๋ถ„์„ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ณ ์ž ํ•œ๋‹ค. letters = [[],[],['a','b','c'],['d','e','f'],['g','h','i'],['j','k','l'],['m','n','o'],['p','q','r','s'],['t','u','v'],['w','x','y','z']]class Solution: def backtracking(arr,ans, digits,results): ..
๊ณจ๋“œ5 ๋ฌธ์ œ์ด๋‹ค.  ์ฝ”๋“œdictionary = []puzzels = []flag = Truewhile True: s = input() if s == '#': break if s == '-': flag = False continue if flag: dictionary.append(s) else: puzzels.append(s)for puzzel in puzzels: candidates = [] for word in dictionary: puzzel_list = list(puzzel) flag = True for i in range(len(word)): if word[i] not in puzzel_list: flag = False ..
https://www.acmicpc.net/problem/1027 ๋ฌธ์ œ์„ค๋ช…๋ฌธ์ œ๋ฅผ ๋”ฑ ๋ณด์ž๋งˆ์ž ์™„์ „ํƒ์ƒ‰์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ฑด๋ฌผ๋“ค์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉฐ ์นด์šดํŒ…์„ ํ•˜ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.๋นŒ๋”ฉ์˜ ์ˆ˜๋„ ์ ์œผ๋‹ˆ 3์ค‘ ๋ฐ˜๋ณต๋ฌธ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ์•ˆ๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.ํ•ด๊ฒฐ๊ณผ์ •์ฒซํ’€์ดn = int(input())arr = list(map(int, input().split()))for i in range(n): cnt = 0 for j in range(n): if i == j: continue target = abs(arr[j] - arr[i]) / abs(j - i) start = min(i, j) end = max(i, j) flag = True if end - start..
์ข‹์•˜๋˜์ ์ข‹์€ ๋™๋ฃŒ์™€ ํ•จ๊ป˜ํ•˜๋‹ค์‹ค๋ ฅ์ด ์ข‹์€ ๋™๋ฃŒ์™€ ํ•จ๊ป˜ํ•ด์„œ ์ข‹์•˜๋‹ค ๋‚˜๋Š” ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ์žฅ์ ์„ ํก์ˆ˜ํ•˜์—ฌ ๋ฐœ์ „์‹œํ‚ค๋Š”๋ฐ์— ์ •๋ง ๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์ด ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ์–˜๊ธฐํ•˜๋ฉฐ ์‹ค๋ ฅ์ด ๋งŽ์ด ์„ฑ์žฅํ–ˆ์Œ์„ ๋Š๊ผˆ๋‹ค. ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ์ธ ๋กค๋ง๋•Œ๋Š” ์ข‹์€ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ๋ณด๋‹ค๋Š” ๋‚ด๊ฐ€ ์–ด๋–ค ๊ธฐ๋Šฅ์ด๋“  ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ตฌ๋‚˜๋ฅผ ๋Š๊ผˆ๋‹ค๋ฉด ์ด๋ฒˆ์—๋Š” ์ข‹์€ ๋™๋ฃŒ๋“ค๊ณผ ์–ด๋–ป๊ฒŒ ํ˜‘์—…์„ ํ•˜๋ฉด ์ข‹์€์ง€ ๋ฐฐ์šด ๊ฒƒ ๊ฐ™๋‹ค. ๋กค๋ง๋•Œ ์•„์‰ฌ์› ๋˜ ์  ํ•ด์†Œ๋กค๋ง๋•Œ ์•„์‰ฌ์› ๋˜ ๊ฒƒ์€ ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋ฐ ๋กœ๋”ฉ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์‹ ๊ฒฝ์„ ๋œ ์“ด ๊ฒƒ์ด์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์•„์˜ˆ ์—๋Ÿฌ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ํšŒ์˜๊นŒ์ง€ ํ•˜๋ฉด์„œ ์—๋Ÿฌ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์‹ ๊ฒฝ์„ ๋งŽ์ด ์ผ๋‹ค. ๋กœ๋”ฉ ์ฒ˜๋ฆฌ์˜ ๊ฒฝ์šฐ SSR์ผ ๋•Œ ์ ์šฉ์„ ํ•ด์ฃผ์ง€ ์•Š์•˜๋‹ค. Link ํƒœ๊ทธ ๋•๋ถ„์ด๊ณ , ๊ฑฑ์ •๋๋˜ ๋ถ€๋ถ„์€ Link ๋กœ ํŽ˜์ด์ง€ ์ด๋™์‹œ ๋”œ๋ ˆ์ด๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ถ€..
๋ฌธ์ œ์ 1 - ํ•ด๊ฒฐ์œ„ ํ…Œ์ด๋ธ” ์ปดํฌ๋„ŒํŠธ๋Š” ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์ด ํ…Œ์ด๋ธ”์„ ๊ณตํ†ตํ™”๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ํ…Œ์ด๋ธ”์€ ๊ทธ์ € ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๊ฒŒ ์˜ณ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. (๊ฐ€๊ฒŒ, ์ผ์ž, ์‹œ๊ธ‰, ์ƒํƒœ)์™€ ๊ฐ™์€ ํƒ€์ดํ‹€๊ณผ ๋‚ด์šฉ์„ ๊ทธ์ € string ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ๋˜์ง€๋งŒ ๊ฐ์ฒด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธฐ์ž๋Š” ํŒ€์›๋“ค์˜ ์˜๊ฒฌ์ด ์žˆ์—ˆ๋‹ค. ๋‚˜๋„ ๊ทธ์ € string ๋ฐฐ์—ด๋กœ ํ•˜์ง€ ์•Š๊ณ  ํƒ€์ž…์„ ์ข€ ๋” ์ขํžˆ๊ณ  ๊ฐ•์ œํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.  ๊ฒฐ๋ก ์ ์œผ๋กœ ๊ฐ™์ด ์ฝ”๋”ฉํ•˜๋ฉฐ ์œ„์™€ ๊ฐ™์ด ์ฝ”๋”ฉ์„ ํ•˜์˜€๋‹ค. ๋ญ.. ๋‚˜๋ฆ„ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™๋‹ค.  ๋ฌธ์ œ์ 2 - ํ•ด๊ฒฐํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ณตํ†ต ํ…Œ์ด๋ธ” ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ๋„ฃ๋Š”๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์œผ๋ฉด ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•˜๋Š” ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์ด๊ฒƒ์„ ํ…Œ์ด๋ธ”์— ๋„˜๊ฒจ์ฃผ..
ํŒŒ์ด์ฌ์œผ๋กœ ํ‘ผ ์ด์œ ๋Š” ๊ฐ‘์ž๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๊ณ  ์‹ถ์–ด์„œ ํ’€๋‹ค๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž…์ถœ๋ ฅํ•˜๊ธฐ ๊ท€์ฐฎ์•„์„œ์ด๋‹ค. n = int(input()) time = [] for _ in range(n): time.append(tuple(map(int, input().split()))) # print(time) time = sorted(time, key=lambda x: (x[0], x[1])) # print(time) cnt = 0 while len(time) > 0: start = time[0][0] end = time[0][1] del time[0] for i in range(len(time)): if time[i][0] >= end: start = time[i][0] end = time[i][1] del time[i] b..
ํŒ€์› ๋ถ„์˜ ํ—ค๋” ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„ ํ•œ ํŒ€์› ๋ถ„๊ป˜์„œ ์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋งก์œผ์…จ๋‹ค. ๊ฐ„๋‹จํ•ด๋ณด์ด์ง€๋งŒ ์‚ฌ์‹ค ๊ฐ„๋‹จํ•˜์ง€ ์•Š๋‹ค. ๋กœ๊ทธ์ธ ๋กœ๊ทธ์•„์›ƒ ์œ ๋ฌด๋„ ๊ทธ๋ ‡๊ณ  search ํ•˜๋Š” ๋ถ€๋ถ„๋„ ๊ทธ๋ ‡๊ณ  ๋ฌด์—‡๋ณด๋‹ค ์ € notification. ํ—ค๋” ๋งจ ์˜ค๋ฅธ์ชฝ ์ž๊ทธ๋งˆํ•œ ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๋ฉด ๋œจ๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ํŒ€์›๋ถ„์ด ์—ฌ๊ธฐ์„œ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ์žˆ์œผ์…จ๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ํƒ€์ž… ์ชฝ์€ ๋‚ด๊ฐ€ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„์„œ ๊ถ๊ธˆ์ฆ์„ ํ•ด์†Œ์‹œ์ผœ๋“œ๋ ธ๊ณ  ์ฒซ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ฉด ๋ชจ๋“  ์•Œ๋ฆผ์„ ์ฝ์Œ ์ฒ˜๋ฆฌํ–ˆ์„๋•Œ ์ž๋™์œผ๋กœ ์•Œ๋ฆผ์ฐฝ์ด ๋‹ซํžˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ์…จ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋œจ๊ฑฐ์šด ํ† ๋ก  ํ˜„์žฅ ์ด์— ๋Œ€ํ•ด์„œ ์ด ํŒ€์› ๋ถ„๊ณผ ๋งŽ์€ ์–˜๊ธฐ๋ฅผ ๋‚˜๋ˆด๋‹ค. ๋‚˜๋„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉฐ ๋ฌธ์ œ์ ์„ ์ฐพ๊ธฐ ์ •๋ง ์–ด๋ ค์› ์ง€๋งŒ ๊ฒฐ๊ตญ์—” ์ฐพ์•„๋‚ด์—ˆ๋Š”๋ฐ ์ฒ˜์Œ์—๋Š” race condition ์ด์Šˆ์ธ๊ฐ€(?) ํ•˜๋‹ค๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘ ์›๋ฆฌ ๋•Œ๋ฌธ์ž„์„ ..
๊น€ํƒœ์ง„
My Dev History๐Ÿ’ป