์•Œ๊ณ ๋ฆฌ์ฆ˜๐Ÿฅš/๊ฐœ๋… 7

[๊ตฌํ˜„] ๋นˆ์ถœ) ๋ฐฐ์—ด ํšŒ์ „ํ•˜๊ธฐ

๋‹ค์Œ์€ ๋ฐฐ์—ด์„ ์˜ค๋ฅธ์ชฝ 90๋„ ํšŒ์ „์‹œํ‚จ ์ฝ”๋“œ์ด๋‹ค. ๋ฐฉ๋ฒ•1. depth+(์ƒํ•˜์ขŒ์šฐ 4๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„)ํ•ด๋‹น ์ฝ”๋“œ๋Š” ๋ฐฐ์—ด์€ 4๊ฐœ๋กœ ๋‚˜๋ˆ„๊ณ  depth๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.def rotate_right(matrix, len_key): depth=len(matrix)//2 rotate_matrix=[[0]*len(matrix) for _ in range(len(matrix))] for row in range(0, depth+1): for col in range(row, row+(len_key-1)-2*row): rotate_matrix[col][len_key-1-row]=matrix[row][col]#๋ถ rotate_matrix[len_ke..

[์ž๋ฐ” ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ธฐ๋ณธ] 0. ์ž๋ฃŒํ˜•์˜ ์ข…๋ฅ˜์™€ ํฌ๊ธฐ

์ •์ˆ˜ ์ž๋ฃŒํ˜• ํƒ€์ž…๋ช… ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ ๋ฐ์ดํ„ฐ์˜ ํ‘œํ˜„ ๋ฒ”์œ„ ๊ณ„์‚ฐ byte 1byte -128 ~ 127 (8bit=๋ถ€ํ˜ธ์ž๋ฆฌ(1)+์ˆซ์ž์ž๋ฆฌ(7)) short 2byte -32,768 ~ 32,767 (16bit=๋ถ€ํ˜ธ์ž๋ฆฌ(1)+์ˆซ์ž์ž๋ฆฌ(7)) int 4byte -2,147,483,648 ~ 2,147,483,647 (์•ฝ 20์–ต) (32bit=๋ถ€ํ˜ธ์ž๋ฆฌ(1)+์ˆซ์ž์ž๋ฆฌ(7)) long 8byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (64bit=๋ถ€ํ˜ธ์ž๋ฆฌ(1)+์ˆซ์ž์ž๋ฆฌ(7)) ์ถ”๊ฐ€ 1) long ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ๊ฐ’์„ ๋Œ€์ž…ํ•  ๋•ŒL(ํ˜น์€ ์†Œ๋ฌธ์ž l) ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ถ”๊ฐ€ 2) 2์ง„์ˆ˜, 8์ง„์ˆ˜ 16์ง„์ˆ˜๋Š” ๊ฐ๊ฐ int ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉฐ, 0b์ˆซ์ž, 0์ˆซ์ž, 0..

[ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ฐœ๋…] 2. ๋ฐํฌ(Deque)

๋ฐํฌ(Deque) ๋ฐํฌ๋Š” ์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„๋˜์–ด head, tail ๋‘ ๊ฐ€์ง€ ํฌ์ธํ„ฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์Šคํƒ๊ณผ ํ๋ฅผ ์ผ๋ฐ˜ํ™” ํ•œ ์ž๋ฃŒํ˜•์ด๋‹ค. ์—ฐ์‚ฐ 0) ์„ ์–ธ collections.deque(iterable, maxlen) iterable : iterable ๊ฐ์ฒด์˜ ๊ฐ’์„ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์‚ฝ์ž…ํ•˜์—ฌ ๋งŒ๋“  ๋ฐํฌ๋ฅผ ๋ฐ˜ํ™˜ maxlen : ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์—ฌ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•  ์ˆ˜๋„ ์žˆ์Œ โ‘  ๊ฐ’(value) ์ถ”๊ฐ€ head ์•ž ๋ถ€๋ถ„(์™ผ์ชฝ) index์— ๊ฐ’ ์ถ”๊ฐ€(์‚ฌ์ด) tail ๋’ท ๋ถ€๋ถ„(์˜ค๋ฅธ์ชฝ) appendleft(value) insert(index, value) append(value) โ‘ก ์š”์†Œ ์ œ๊ฑฐํ•˜์—ฌ ๋ฐ˜ํ™˜ โžž ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด IndexError head ๋ถ€๋ถ„(์ œ์ผ ์™ผ์ชฝ) tail ๋ถ€๋ถ„(์ œ์ผ ์˜ค๋ฅธ์ชฝ) popleft() ..

[ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ฐœ๋…] 1-1. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ - ๋Ÿฌ๋„ˆ

Runner ๊ธฐ๋ฒ• Runner ๊ธฐ๋ฒ•์€ '์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์Šค๋Ÿฌ์šด' ํ’€์ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ ๋น ๋ฅธ ๋Ÿฌ๋„ˆ, ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ 2๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ๋‹ค. ๋น ๋ฅธ ๋Ÿฌ๋„ˆ(fast runner) : ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๋ณด๋‹ค 2๋ฐฐ ์•ž์„ ๋‹ค (๋‘ ์นธ์”ฉ ์ด๋™) ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ(slow runner) : ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๋ณด๋‹ค 2๋ฐฐ ๋Š๋ฆฌ๊ฒŒ ๋‚˜์•„๊ฐ„๋‹ค (ํ•œ ์นธ์”ฉ ์ด๋™) ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์•ž์ชฝ์˜ ๋…ธ๋“œ์˜ ์ ˆ๋ฐ˜์„ ๋ชฉ์ ์— ์•Œ๋งž์€ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ, ๋Š๋ฆฐ ๋„ˆ๋Ÿฌ๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋’ค์ชฝ์˜ ๋…ธ๋“œ์˜ ์ ˆ๋ฐ˜์„ ๋น„๊ต๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. (ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์ด์œ ๊ฐ€ ๋น„์Šทํ•˜๋‹ค) ์ž์„ธํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด์ž. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ ํ™€์ˆ˜์ผ ๋•Œ๋Š” ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ•œ๋‹ค. โ‘  ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ while(fast_runn..

[ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] 3. ์ปฌ๋ž™์…˜ Collections

* ์ด ๊ธ€์€ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์ฝ”์Šค์˜ ์ธ๊ณต์ง€๋Šฅ(AI) ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ปฌ๋ž™์…˜ ๋ชจ๋“ˆ์ด๋ž€? ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ์— ๋Œ€ํ•œ ํŒŒ์ด์ฌ ๋นŒ๋“œ์ธ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ํŽธ์˜์„ฑ, ์‹คํ–‰ํšจ์œจ์„ ์ œ๊ณต 1) import deque - ์Šคํƒ๊ณผ ํ๋ฅผ ์ง€์› - doubled ended queue๋กœ ์–‘๋ฐฉํ–ฅ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„๋จ - ์ผ๋ฐ˜ ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ๊ธธ์ด 100๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ ๊ธฐ์ค€ 3๋ฐฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ฆ HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2) import Counter - ํ•ด๋‹น ๋ชจ๋“ˆ์€ ๊ธฐ์–ตํ•ด๋‘๊ธฐ - Sequence type์˜ data element๋“ค์˜ ๊ฐฏ์ˆ˜๋ฅผ dict ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค - counter -> list HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค - ์ง‘ํ•ฉ์—ฐ์‚ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ +..

[ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] 2. ํŠœํ”Œ, ์„ธํŠธ, ๋”•์…”๋„ˆ๋ฆฌ

* ์ด ๊ธ€์€ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์ฝ”์Šค์˜ ์ธ๊ณต์ง€๋Šฅ(AI) ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. 1) ํŠœํ”Œ Tuple : ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ŠคํŠธ - ํ™œ์šฉ : ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ์ฃผ๋กœ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜์–ด ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ - ํŠน์ด์‚ฌํ•ญ : ๊ฐ’์˜ ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ - ๋ฆฌ์ŠคํŠธ ์—ฐ์‚ฐ(+, * ๋“ฑ๋“ฑ), ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์„ ์–ธ () ๊ฐ’์ด ํ•˜๋‚˜์ธ ํŠœํ”Œ์˜ ์ •์˜ (element, ) 2) ์„ธํŠธ Set : ๊ฐ’์˜ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜• - ์ง‘ํ•ฉ ์—ฐ์‚ฐ ๋‚˜์˜ค๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ ์„ ์–ธ {} or set(๋ฆฌ์ŠคํŠธ) add : ํ•˜๋‚˜์˜ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜ set.add(element) update : ์—ฌ๋Ÿฌ๊ฐœ์˜ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜ set.update(list) remov..

[ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] 1. ์Šคํƒ๊ณผ ํ

* ์ด ๊ธ€์€ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์ฝ”์Šค์˜ ์ธ๊ณต์ง€๋Šฅ(AI) ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์‚ฌ๋‹ด) ์–ผ๋งˆ์ „ ์ธํ„ด ๋ชจ์˜๋ฉด์ ‘์— ์šฐ์—ฐํžˆ ์ฐธ์—ฌํ•  ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ๋Š”๋ฐ ์Šคํƒ๊ณผ ํ๋ฅผ ํ—ท๊ฐˆ๋ ค๋ฒ„๋ ธ๋‹ค. ํ”„๋กœ์ ํŠธ ์œ„์ฃผ๋กœ ์ง„ํ–‰๋˜๋Š” ์ˆ˜์—…์ด ๋งŽ์•˜์–ด์„œ ๊ธฐ์ดˆ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฐ๊ฒŒ ํ‹€๋ฆผ์—†๋‹ค. 0ใ…‡0 ๋‹ค์‹œ ์ดˆ์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€ ๊ผผ๊ผผํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณด์ž. 1) ์Šคํƒ Stack (=์‚ฌ๋‹ค๋ฆฌ. ์ œ์ผ ๋‚˜์ค‘์— ์˜ฌ๋ผ๊ฐ„ ์‚ฌ๋žŒ์ด ๋จผ์ € ๋‚ด๋ ค์™€์•ผ ์ „ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด๋ ค์˜ด) - ๋‚˜์ค‘์— ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ - LIFO (Last In First Out) - ๊ธฐ๋Šฅ : Push, Pop, Top, Empty - ๊ตฌํ˜„ : List Push : ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ํ•จ์ˆ˜ list.append(element) Pop : ์ œ์ผ ๋‚˜์ค‘์˜ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ํ•จ์ˆ˜ l..

728x90