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

์ „์ฒด ๊ธ€148

[TIL] CSAPP 11์žฅ ๊ณต๋ถ€4 - tiny ์„œ๋ฒ„ ์ •๋ฆฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 20920๋ฒˆ - ์˜๋‹จ์–ด ์•”๊ธฐ๋Š” ๊ดด๋กœ์›Œ import sys N, M = map(int, sys.stdin.readline().split()) words = {} # key = ์˜์–ด๋‹จ์–ด / value = ์˜์–ด๋‹จ์–ด ์ž…๋ ฅ ํšŸ์ˆ˜ for _ in range(N) : w = sys.stdin.readline().strip() if len(w) >= M : if w in words : words[w] += 1 else : words[w] = 1 # ๋‹จ์–ด๋ฅผ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌ words = dict(sorted(words.items())) # ๋‹จ์–ด๋ฅผ ์ž…๋ ฅ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋˜ ๊ฐ™์œผ๋ฉด ๊ธธ์ด๊ฐ€ ๊ธด ๊ฒƒ๋ถ€ํ„ฐ ์ •๋ ฌ words = dict(sorted(words.items(), key=lambda .. 2023. 5. 22.
[TIL] CSAPP 11์žฅ ๊ณต๋ถ€3 - ์›น ์„œ๋ฒ„ 1. Web ๊ธฐ์ดˆ 1. HTTP(Hypertext Transfer Protocol) ์›น ์ƒ์—์„œ ์›น ์„œ๋ฒ„ ๋ฐ ์›น ๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ) ์ƒํ˜ธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ์‘์šฉ(๊ณ„์ธต ํ”„๋กœํ† ์ฝœ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์‘์šฉ์ˆ˜์ค€ ํ”„๋กœํ† ์ฝœ๋กœ ์ฃผ๋กœ HTML ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. https://ko.wikipedia.org/wiki/HTTP ์›น ์„œ๋ฒ„ ํฌํŠธ ๋ฒˆํ˜ธ : 80 ์š”์ฒญ/์‘๋‹ต(Request/Response) ํ”„๋กœํ† ์ฝœ ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„ : ์ฝ˜ํ…์ธ  ์š”์ฒญ ์„œ๋ฒ„ → ํด๋ผ์ด์–ธํŠธ : ์š”์ฒญ๋ฐ›์€ ์ฝ˜ํ…์ธ ๋กœ ์‘๋‹ต ๐Ÿ”— http://www.ktword.co.kr/test/view/view.php?m_temp1=4884&id=902 HTTP Method ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ๋ชฉ์  ๋ฐ ๊ทธ ์ข…๋ฅ˜๋ฅผ ์•Œ๋ฆฌ๋Š” ์ˆ˜๋‹จ GET : ๋ฆฌ.. 2023. 5. 21.
[TIL] CSAPP 11์žฅ ๊ณต๋ถ€2 - ์˜ˆ์ œ echo ์„œ๋ฒ„ 1. ์ƒ์œ„ ์ˆ˜์ค€์˜ ๋„์›€ ํ•จ์ˆ˜ 1. open_clientfd() ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•œ๋‹ค. 2. open_listenfd() ์„œ๋ฒ„๋Š” ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋œ ๋“ฃ๊ธฐ ์‹๋ณ„์ž ์ƒ์„ฑ โ–ถ setsockopt() : ์†Œ์ผ“ ์„ธ๋ถ€ ์‚ฌํ•ญ ์„ค์ • int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen); sock : ์†Œ์ผ“ ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ level : ํ”„๋กœํ† ์ฝœ ๋ ˆ๋ฒจ ์ „๋‹ฌ SOL_SOCKET : ์ผ๋ฐ˜ IPPROTO_IP : IP - IPv4 IPPROTO_TCP : TCP optname : ๋ณ€๊ฒฝํ•  ์˜ต์…˜์˜ ์ด๋ฆ„ SO_REUSEADDR : ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ธ ์ฃผ์†Œ๋‚˜ ํฌํŠธ์— ๋Œ€ํ•ด์„œ๋„ ๋ฐ”์ธ.. 2023. 5. 20.
[TIL] CSAPP 11์žฅ ๊ณต๋ถ€ - ๋„คํŠธ์›Œํฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 1966๋ฒˆ - ํ”„๋ฆฐํ„ฐ ํ - 2023.05.18 import sys from collections import deque testcase = int(sys.stdin.readline()) for _ in range(testcase) : N, M = map(int, sys.stdin.readline().split()) priorty = list(map(int, sys.stdin.readline().split())) queue = deque() for i in range(N) : queue.append((i, priorty[i])) # ์›๋ž˜ ์œ„์น˜์™€ ์ค‘์š”๋„๋ฅผ ๊ฐ™์ด ํ์— ๋„ฃ์–ด์ค€๋‹ค. count = 0 while queue : flag = True #True์ผ ๊ฒฝ์šฐ ์ถœ๋ ฅ ๊ฐ€๋Šฅ / Fals.. 2023. 5. 19.
[TIL] CASPP 9์žฅ ๊ณต๋ถ€5 - ๊ฐ„๋‹จํ•œ ํ• ๋‹น๊ธฐ3(segregated) 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 1359๋ฒˆ - ๋ณต๊ถŒ import sys from itertools import combinations N, M, K = map(int, sys.stdin.readline().split()) jimin = list(combinations(range(N), M)) # ์ง€๋ฏผ์ด๊ฐ€ ๋ฝ‘์„ ์ˆ˜๋“ค์˜ ์กฐํ•ฉ result = list(combinations(range(N), M)) # ๋‹น์ฒจ ๊ฒฐ๊ณผ๋“ค์˜ ์กฐํ•ฉ luck = 0 # ๋‹น์ฒจ๋œ ํšŸ์ˆ˜ ์ €์žฅ for jm in jimin : for re in result : count = 0 # ํ˜„์žฌ ์ง€๋ฏผ์ด์™€ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜ for i in range(M) : for j in range(M) : if jm[i] == re[j] : count += 1 if c.. 2023. 5. 17.
[TIL] CSAPP 9์žฅ ๊ณต๋ถ€5 - segregated list(๊ฐœ๋… ๊ณต๋ถ€) 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 1057๋ฒˆ - ํ† ๋„ˆ๋จผํŠธ import sys N, kim, im = map(int, sys.stdin.readline().split()) count = 0 flag = True if N % 2 == 0 : #์ฐธ๊ฐ€์ž๊ฐ€ ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ N += 1 while N > 0 : # ๋‹ค์Œ ๊ฒฝ๊ธฐ์—์„œ์˜ ๋ฒˆํ˜ธ ๊ตฌํ•˜๊ธฐ if kim % 2 == 0 and im % 2 == 0: kim //= 2 im //= 2 elif kim % 2 != 0 and im % 2 == 0: kim = (kim+1) //2 im //= 2 elif kim % 2 == 0 and im % 2 != 0: kim //= 2 im = (im+1) //2 else : kim = (kim+1) //2 im = (im+1) //2 c.. 2023. 5. 16.
[TIL] CSAPP 9์žฅ ๊ณต๋ถ€4 - ๊ฐ„๋‹จํ•œ ํ• ๋‹น๊ธฐ2(Explicit, first-fit) 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 25192๋ฒˆ - ์ธ์‚ฌ์„ฑ ๋ฐ์€ ๊ณฐ๊ณฐ์ด import sys N = int(sys.stdin.readline()) record = {} count = 0 for _ in range(N) : input = sys.stdin.readline().strip() if input == 'ENTER' : record = {} # ๋ชจ๋“  ๊ธฐ๋ก ์ดˆ๊ธฐํ™” elif input not in record : count += 1 record[input] = 1 print(count) ์•„์นจ๋งˆ๋‹ค ๊ฐ™์ด ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋ผ๋ฆฌ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ๋‹ค. ์˜ค๋Š˜ ๋ฌธ์ œ๋Š” ์ข€ ๊ท€์—ฌ์› ๋‹ค. ์ €๋ฒˆ ๊ธˆ์š”์ผ์˜ ๋ฌธ์ œ ํ’€์ด์— ์ด์–ด์„œ Hash๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ’€๋ฉด ๋œ๋‹ค. 2. Explicit Free List ๋ช…์‹œ์  ๊ฐ€์šฉ ๋ฆฌ์ŠคํŠธ 1. ๋ฌต์‹œ์  ๊ฐ€์šฉ ๋ฆฌ์ŠคํŠธ.. 2023. 5. 15.
[TIL] CSAPP 9์žฅ ๊ณต๋ถ€3 - next-fit 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด 1. 1107๋ฒˆ - ๋ฆฌ๋ชจ์ปจ import sys N = int(sys.stdin.readline()) #๋ชฉํ‘œ ์ฑ„๋„ M = int(sys.stdin.readline()) # ๋ง๊ฐ€์ง„ ๋ฒˆํ˜ธ ์ˆ˜ brocken = {} if M : for i in list(sys.stdin.readline().split()) : brocken[i] = 1 count = abs(100 - N) # + ๋˜๋Š” - ๋กœ๋งŒ ์›€์ง์˜€์„ ๋•Œ ํšŸ์ˆ˜ if count != 0 : # ์ด๋ฏธ ๋ชฉํ‘œ ์ฑ„๋„์ด ์•„๋‹ ๊ฒฝ์šฐ๋งŒ ๋ฐ˜๋ณต for i in range(1000001) : num = str(i) #ํ˜„์žฌ ์ฑ„๋„ ๋ฒˆํ˜ธ length = len(num) for j in range(length) : if num[j] in brocken : #์ฑ„๋„.. 2023. 5. 14.
[TIL] CSAPP 9์žฅ ๊ณต๋ถ€3 - ๊ฐ„๋‹จํ•œ ํ• ๋‹น๊ธฐ(Implicit, first-fit) 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 10026๋ฒˆ - ์ ๋ก์ƒ‰์•ฝ import sys from collections import deque N = int(sys.stdin.readline()) graph = [list(sys.stdin.readline().strip()) for _ in range(N)] color_count = 0 color_weakness = 0 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y) : #์ƒ‰์•ฝ์ด ์•„๋‹Œ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ตฌ์—ญ global color_count, color_weakness queue = deque() visited[x][y] = 1 queue.append((x,y)) while queue : curx, cury = queue.poplef.. 2023. 5. 14.
[TIL] CSAPP 9์žฅ ๊ณต๋ถ€2 - ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 1764๋ฒˆ - ๋“ฃ๋ณด์žก import sys N, M = map(int, sys.stdin.readline().split()) dic = {} #๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ ์ €์žฅ for _ in range(N) : dic[sys.stdin.readline().strip()] = 1 count = 0 result = [] for _ in range(M) : b = sys.stdin.readline().strip() #๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ if b in dic : # ๋”•์…”๋„ˆ๋ฆฌ์— ํ‚ค๊ฐ’์œผ๋กœ ์กด์žฌํ•˜๋ฉด #๋“ฃ๋„๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์ด๋‹ค. count += 1 result.append(b) print(count) result.sort() for i in range(count) : print(result[i]) ์ „์— ํ’€์—ˆ๋˜.. 2023. 5. 12.
[TIL] CSAPP 9์žฅ ๊ณต๋ถ€ - ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ๋… ์ •๋ฆฌ 1. ์•„์นจ ๋ฌธ์ œ ํ’€์ด 1. 2563๋ฒˆ - ์ƒ‰์ข…์ด import sys n = int(sys.stdin.readline()) array = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] canvas = [[0]*100 for _ in range(100)] result = 0 for i in range(n) : for j in range(array[i][0], array[i][0]+10) : for k in range(array[i][1], array[i][1]+10) : if canvas[j][k] == 0 : canvas[j][k] = 1 result += 1 print(result) ์ฒ˜์Œ์—๋Š” ์ƒ‰์ข…์ด์˜ ๊ฐœ์ˆ˜๋งŒํผ์˜ ๋„“์ด๋ฅผ ๊ตฌํ•œ ๋‹ค์Œ ๊ฒน์น˜๋Š”.. 2023. 5. 11.
[TIL] RB Tree ๊ตฌํ˜„ (with C) 1. RB Tree ์ƒ์„ฑํ•˜๊ธฐ RB Tree ๊ตฌ์กฐ์ฒด๋ฅผ ์ƒ์„ฑ - ์—ฌ๋Ÿฌ ๊ฐœ์˜ RB Tree๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. sentinel node(๊ฒฝ๊ณ„๋…ธ๋“œ) ์‚ฌ์šฉ - ๋ชจ๋“  nil ๋…ธ๋“œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋…ธ๋“œ //RB Tree ๊ตฌ์กฐ์ฒด ์ƒ์„ฑ rbtree *new_rbtree(void) { rbtree *p = (rbtree *)calloc(1, sizeof(rbtree)); //ํ˜„์žฌ ํŠธ๋ฆฌ์—์„œ NIL๋…ธ๋“œ๊ฐ€ ๋  ๋…ธ๋“œ ์ƒ์„ฑ //๊ฐ ํŠธ๋ฆฌ๋งˆ๋‹ค NIL๋…ธ๋“œ๋Š” 1๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. node_t *NIL = (node_t *)calloc(1, sizeof(node_t)); NIL->color = RBTREE_BLACK; p->root = NIL; p->nil = NIL; return p; } 2. RB Tree ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œํ•˜๊ธฐ RB Tre.. 2023. 5. 10.
[TIL] ๊ธฐ๊ณ„ ์ˆ˜์ค€ ํ‘œํ˜„3 + RB Tree ์‚ฝ์ž… ๊ตฌํ˜„(์ฝ”๋“œX) 1. ๊ธฐ๊ณ„ ์ˆ˜์ค€ ํ‘œํ˜„ 1. ์œ ํšจ ์ฃผ์†Œ ์ ์žฌ(Load Effective Address) leaq S, D = D ← &S : ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ฝ์–ด๋“ค์ด๋Š” ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ „ํ˜€ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฒซ๋ฒˆ์งธ ์˜คํผ๋žœ๋“œ(S)์˜ ์œ ํšจ ์ฃผ์†Œ๋ฅผ ๋ชฉ์ ์ง€(D)์— ๋ณต์‚ฌํ•œ๋‹ค. ํฌ์ธํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ์ผ๋ฐ˜์ ์ธ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ์˜ˆ์‹œ ) x in %rdi, y in %rsi leaq (%rdi, %rsi, 4), %rdi //x = x + 4*y 2. ํ”„๋กœ์‹œ์ €(Procedure) procedure call ์€ ์†Œํ”„์›จ์–ด์—์„œ์˜ ์ฃผ์š” ์ถ”์ƒํ™” : ์ง€์ •๋œ ์ธ์ž๋“ค๊ณผ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ์‹ธ์ฃผ๋Š” ๋ฐฉ๋ฒ• ์ œ๊ณต ๋ฌด์Šจ ๊ฐ’์ด ๊ณ„์‚ฐ๋˜๊ณ , ์ด ํ”„๋กœ์‹œ์ €๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ƒํƒœ์—์„œ ๋ฌด์Šจ ํšจ๊ณผ๋ฅผ.. 2023. 5. 8.
[TIL] Make๋ž€? + stack ๋ฌธ์ œ ํ’€์ด 1. Make ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋นŒ๋“œ ๋„๊ตฌ ์—ฌ๋Ÿฌ ํŒŒ์ผ๋“ค๋ผ๋ฆฌ์˜ ์˜์กด์„ฑ๊ณผ ๊ฐ ํŒŒ์ผ์— ํ•„์š”ํ•œ ๋ช…๋ น์„ ์ •์˜ํ•จ์œผ๋กœ์จ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์ข… ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ณผ์ •์„ ์„œ์ˆ ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€์ ์ธ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Makefile : make๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ์˜ ๋ชฉ๋ก ๋ฐ ์ปดํŒŒ์ผ ๋ฐ ๋งํฌ ๊ทœ์น™ 1. Makefile ์ด ํ•„์š”ํ•œ ์ด์œ  ๋ฐ˜๋ณต๋œ๋Š” ์ปดํŒŒ์ผ ์ž‘์—… ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ์ˆ˜์ •๋œ ํŒŒ์ผ๋งŒ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋‚˜ ๊ณต๋™ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. 2. ์ปดํŒŒ์ผ ๊ณผ์ • ์†Œ์Šค ํŒŒ์ผ(*.c) : ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ ๋ชฉ์ ํŒŒ์ผ(*.o) : gcc compiler ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑ → ๊ธฐ๊ณ„์–ด ์ƒ์„ฑ ์‹คํ–‰ํŒŒ์ผ(*.out) : gcc compi.. 2023. 5. 7.
[TIL] Red-Black Tree ๊ฐœ๋…(์‚ฝ์ž…/์‚ญ์ œ) + ๊ธฐ๊ณ„ ์ˆ˜์ค€ ํ‘œํ˜„(์Šคํƒ)2 1. ๋ฌธ์ œ ํ’€์ด 1. 1874๋ฒˆ - ์Šคํƒ ์ˆ˜์—ด import sys n = int(sys.stdin.readline()) stack = [] result = '' idx = 1 flag = True for i in range(n) : num = int(sys.stdin.readline()) for j in range(idx, num+1): stack.append(j) result += '+\n' idx += 1 if num == stack[-1] : stack.pop() result += '-\n' else : flag = False break if flag : print(result) else : print('NO') ์Šคํƒ ๋ฌธ์ œ ํ’€์ด ํ’€์ด 1. ํ˜„์žฌ ์ž…๋ ฅ ๋ฐ›์€ ์ˆ˜๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ทธ ์ˆ˜๊นŒ์ง€ +, stack์— .. 2023. 5. 6.
[TIL] LinkedList & AVL Tree (with C) 1. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List) ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ•œ ์ค„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ข…๋ฅ˜ ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ฐ ๋…ธ๋“œ์— data ๊ณต๊ฐ„๊ณผ ํ•œ๊ฐœ์˜ ํฌ์ธํ„ฐ ๊ณต๊ฐ„ ์กด์žฌ ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋‘๊ฐœ์˜ ํฌ์ธํ„ฐ ๊ณต๊ฐ„ ์กด์žฌ ํฌ์ธํ„ฐ๋Š” ํ˜„์žฌ ๋…ธ๋“œ์˜ ์•ž์˜ ๋…ธ๋“œ์™€ ๋’ค์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ผ๋ฐ˜์ ์ธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์— ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์™€ ์ฒ˜์Œ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ ์›ํ˜•์œผ๋กœ ๋งŒ๋“  ๊ตฌ์กฐ โ˜… ๋‹จ์ผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ(C์–ธ์–ด) โ˜… 1. header file - linkedlist_node.h #pragma once // ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋…ธ๋“œ typedef struct node { int data; // ๊ฐ’ ์ €์žฅ struct node.. 2023. 5. 5.
[TIL] C์–ธ์–ด ๊ณต๋ถ€ํ•˜๊ธฐ 1. ์ฝ”๋“œ refactoring 1. 12891๋ฒˆ - DNA ๋น„๋ฐ€๋ฒˆํ˜ธ import sys s, p = map(int, sys.stdin.readline().split()) dna = list(sys.stdin.readline().strip()) # A, C, G, T esssential = list(map(int, sys.stdin.readline().split())) def remove(st) : global a, c, g, t if dna[st] == 'A' : a -= 1 elif dna[st] == 'C' : c -= 1 elif dna[st] == 'G' : g -= 1 elif dna[st] == 'T' : t -= 1 return 0 def add(e) : global a, c, g, t i.. 2023. 5. 4.
[TIL] ๋ฌธ์ œ ํ’€์ด ์—ฐ์Šต - two point (with python) 1. ๋ฌธ์ œ ํ’€์ด ์—ฐ์Šต 1. 2018๋ฒˆ - ์ˆ˜๋“ค์˜ ํ•ฉ import sys N = int(sys.stdin.readline()) start = 1 # ํ˜„์žฌ ๋”ํ•œ ๊ฐ’ ์ค‘ ์ฒซ๋ฒˆ์งธ ๊ฐ’ end = 1 # ํ˜„์žฌ ๋”ํ•œ ๊ฐ’ ์ค‘ ๋งˆ์ง€๋ง‰ ๊ฐ’ count = 1 # ์ž๊ธฐ ์ž์‹  ํฌํ•จ sum = 1 # ์ด ๋”ํ•œ ๊ฐ’ # ์ตœ์†Œ 2๊ฐœ์˜ ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ์ด์–ด์•ผ ํ•˜๋ฏ€๋กœ # start๋Š” N์˜ ์ ˆ๋ฐ˜๋ณด๋‹ค ํด ์ˆ˜ ์—†๋‹ค. while start != N // 2 + 1 : if sum < N : # ์•„์ง ๋ˆ„์ ํ•ฉ์ด N๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ end += 1 sum += end elif sum == N : # N๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ count += 1 sum -= start start += 1 else : # N๋ณด๋‹ค ํด ๊ฒฝ์šฐ sum -= start start += 1.. 2023. 5. 3.
728x90