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

์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์‹ค์Šต - [6] ์Šคํƒ ์‹ค์Šต๋ฌธ์ œ (ํŒŒ์ด์ฌ์œผ๋กœ ์‹ฌ๋ณผ๊ท ํ˜•, ํ›„์œ„์ˆ˜์‹ ๊ตฌํ˜„ํ•˜๊ธฐ) (2) ์‹ฌ๋ณผ๊ท ํ˜• ์Šคํƒ ADT๋ฅผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์‹ฌ๋ณผ๋“ค์˜ ๊ท ํ˜•์„ ๊ฒ€์‚ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ ์‹ฌ๋ณผ ๊ท ํ˜•์ด๋ž€ (),[] ๋“ฑ๊ณผ ๊ฐ™์ด ๊ด„ํ˜ธ์˜ ์ง์ด ๋งž๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค. ์ž…๋ ฅ ์˜ˆ์‹œ์™€ ์ถœ๋ ฅ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด์ž. >>> (3+40*(2+(30-7)*2133) Wrong_5 # ์‹ฌ๋ณผ ๊ท ํ˜•์ด ์ด๋ฃจ์–ด ์ง€์ง€ ์•Š์•˜์œผ๋ฉฐ, ๋ฌธ์žฅ์•ˆ์˜ ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ 5๊ฐœ์ด๋‹ค. >>> 3*{4+(2-792)/1} + [3*{4-2* (100 -7)}] OK_10 # ์‹ฌ๋ณผ ๊ท ํ˜•์ด ์ด๋ฃจ์–ด ์กŒ์œผ๋ฉฐ, ๋ฌธ์žฅ์•ˆ์˜ ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ 10๊ฐœ์ด๋‹ค. >>> 301*{4+(2101-7)/1} + 9*{4-2* (10108-7)}} Wrong_9 # ์‹ฌ๋ณผ ๊ท ํ˜•์ด ์ด๋ฃจ์–ด ์ง€์ง€ ์•Š์•˜์œผ๋ฉฐ, ๋ฌธ์žฅ์•ˆ์˜ ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ 9๊ฐœ์ด๋‹ค. >>> (3*{4001+(2-7)/1} + [3*{4..
์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์‹ค์Šต - [6] ์Šคํƒ Stack (ํŒŒ์ด์ฌ์œผ๋กœ ์Šคํƒ ๊ตฌํ˜„) (1) ์Šคํƒ ADT ์Šคํƒ ADT๋Š” ์ž„์˜์˜ ๊ฐœ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ํ•˜๋‚˜์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•์ด๋‹ค. ์Šคํƒ์˜ ์ค‘์š”ํ•œ ํŠน์ง•์œผ๋กœ๋Š” LIFO (Last - In First - Out), ํ›„์ž…์„ ์ถœ์ด๋‹ค. ํ›„์ž…์„ ์ถœ์ด๋ž€ ๋ง ๊ทธ๋Œ€๋กœ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด์˜จ ๊ฒƒ์„ ๊ฐ€์žฅ ๋จผ์ € ๊บผ๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ๋“œ๋Ÿผํ†ต์— ์ž์ฃผ ๋น„์œ ๋˜๊ณค ํ•œ๋‹ค. ์Šคํƒ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋Š” ์Šคํƒ์˜ top์ด๋ผ ๋ถˆ๋ฆฌ๋Š” ์œ„์น˜์—์„œ ์ˆ˜ํ–‰๋œ๋‹ค. ์Šคํƒ ADT ๋ฉ”์„œ๋“œ ์Šคํƒ ADT์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์•Œ์•„๋ณด์ž. - ์ฃผ์š” ์Šคํƒ ๋ฉ”์„œ๋“œ push : ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. element pop : ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฝ์ž…๋œ ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. - ๋ณด์กฐ ์Šคํƒ ๋ฉ”์„œ๋“œ element top() : ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฝ์ž…๋œ ์›์†Œ๋ฅผ (์‚ญ์ œํ•˜์ง€ ์•Š๊ณ ) ๋ฐ˜ํ™˜ integer size() : ์ €์žฅ๋œ ์›์†Œ์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ boolean isEm..
์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์‹ค์Šต - [5] ์ง‘ํ•ฉ ์‹ค์Šต๋ฌธ์ œ (ํŒŒ์ด์ฌ์œผ๋กœ ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ, ์†Œ์†๊ณผ ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ˜„)(2) ๋‘ ๊ฐœ์˜ ์ง‘ํ•ฉ A์™€ B๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, A๊ฐ€ B์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ธ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ต์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ—ค๋” & ํŠธ๋ ˆ์ผ๋Ÿฌ ์ด์ค‘์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๊ตฌ์ถ•ํ•˜์‹œ์˜ค. ์–ด๋ ค์›Œ ๋ณด์ผ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์ „ ๊ฒŒ์‹œ๊ธ€์˜ ์˜์‚ฌ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. https://mainyoung.tistory.com/25 class Node: def __init__(self,data,prev=None,next = None): self.data = data self.prev = prev self.next = next #์ด์ค‘์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ class DLset: def __init__(self): self.header = Node("Header") self.trailer = Node("Trailer",sel..
์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์‹ค์Šต - [5] ์ง‘ํ•ฉ Set (1) ์ง‘ํ•ฉ ADT ์ง‘ํ•ฉ ADT๋Š” ์œ ์ผํ•œ ๊ฐœ์ฒด๋“ค์„ ๋‹ด๋Š” ์šฉ๊ธฐ๋ฅผ ๋ชจ๋ธ๋งํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ค‘๊ณ ๋“ฑํ•™๊ต ์‹œ์ ˆ์— ๋ฐฐ์šด ์ง‘ํ•ฉ๊ณผ ๊ฐ™๋‹ค. ์ค‘๋ณต๋œ ๊ฐœ์ฒด๋Š” ์กด์žฌํ•  ์ˆ˜ ์—†๊ณ  ์˜ค์ง ์œ ์ผํ•œ ๊ฐœ์ฒด๋งŒ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. ์ง‘ํ•ฉ ADT ๋ฉ”์„œ๋“œ ํ•ฉ์ง‘ํ•ฉ union(B) : ์ง‘ํ•ฉ B์™€์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ ๊ต์ง‘ํ•ฉ intersect(B) :์ง‘ํ•ฉ B์™€์˜ ๊ต์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ ์ฐจ์ง‘ํ•ฉ subtract(B) : ์ง‘ํ•ฉ B๋ฅผ ์ฐจ๊ฐํ•œ ์ฐจ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ ์ง‘ํ•ฉ A์™€ B์— ๊ด€ํ•œ ์ฃผ์š” ์ž‘์—…์˜ ์‹คํ–‰์‹œ๊ฐ„์€ ์ตœ๋Œ€ O(|A| + |B|)์ด ๋˜์–ด์•ผ ํ•œ๋‹ค!! - ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ integer size() boolean isEmpty() iterator elements() - ์งˆ์˜ ๋ฉ”์„œ๋“œ boolean member(e) : ๊ฐœ์ฒด e๊ฐ€ ์ง‘ํ•ฉ์˜ ์›์†Œ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ boolean subset(B) : ์ง‘ํ•ฉ์ด..