gudals-kim / Nobrain-study

์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ๋“ฑ ์Šคํ„ฐ๋””
0 stars 0 forks source link

๐Ÿ“์•Œ๊ณ ๋ฆฌ์ฆ˜ | ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์Šคํ„ฐ๋””


๐Ÿ“Œ Info

โœ” ๋งค์ผ ์ด์Šˆํƒญ ์— ๊ฐœ์ธ ํ• ๋‹น๋Ÿ‰์ด ์˜ฌ๋ผ์˜จ๋‹ค.

โœ” ๋งค์ผ ํ• ๋‹น๋Ÿ‰์„ ์ฑ„์šฐ์ง€ ๋ชปํ•˜๋ฉด ๋ฒŒ๊ธˆํƒญ ์— ๋ฒŒ๊ธˆ์ด ์Œ“์ธ๋‹ค.

๐Ÿ”์ž์„ธํžˆ - [๋ฒŒ๊ธˆ ์ •์ฑ…](https://github.com/gudals-kim/Nobrain-study/issues/24#issue-1074549551)

๐Ÿ“Œ ๋ชฉํ‘œ

โœ” ๋ฐฑ์ค€ ๊ณจ๋“œ ์ด์ƒ

โœ” ์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๋‹ค ํ’€๊ธฐ

โœ” ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ ์™„๋ฒฝ ์ดํ•ด


๐Ÿ“Œ ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐœ๋…

๐Ÿ” ๋ฐฐ์—ด ๊ฐœ๋… ์ •๋ฆฌ > ๋ฐฐ์—ด ๊ฐœ๋… > ------------ > - ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜์—ดํ•˜๊ณ , ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ฑ์Šค์— ๋Œ€์‘ํ•˜๋„๋ก ๊ตฌ์„ฑํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ > - ํŒŒ์ด์ฌ์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ ํƒ€์ž…์ด ๋ฐฐ์—ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ > ------------ ## 1. ๋ฐฐ์—ด์ด ํ•„์š”ํ•œ ์ด์œ  - ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. - ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค. ## 2. ๋ฐฐ์—ด์˜ ์žฅ์  - ๋น ๋ฅธ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ## 3. ๋ฐฐ์—ด์˜ ๋‹จ์  - ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ๊ฐ€ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. - ๋ฏธ๋ฆฌ ๊ณต๊ฐ„์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ## 4. ํŒŒ์ด์ฌ์—์„œ์˜ ๋ฐฐ์—ด - ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ ํ™œ์šฉ ``` # 1์ฐจ์› ๋ฐฐ์—ด data = [1,2,3,4,5] print (data) ์ถœ๋ ฅ > [1,2,3,4,5] ``` ``` # 2์ฐจ์› ๋ฐฐ์—ด : ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„์‹œ data = [[1,2,3],[4,5,6],[7,8,9]] print(data) print(data[0]) print(data[1][2]) print(data[0][2]) ์ถœ๋ ฅ > [[1,2,3],[4,5,6],[7,8,9]] # data ์ถœ๋ ฅ > [1,2,3] # data[0] ์ถœ๋ ฅ > 6 #data[1][2] ์ถœ๋ ฅ > 3 #data[0][2] ``` ### ํŒŒ์ด์ฌ ์—ฐ์Šต ๋ฌธ์ œ 1 - ๋‹ค์Œ dataset ์—์„œ ์ „์ฒด ์ด๋ฆ„ ์•ˆ์— M์ด ๋ช‡๋ฒˆ ๋‚˜์™”๋Š”์ง€ ๋นˆ๋„์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ ``` dataset = ['Braund, Mr. Owen Harris', 'Cumings, Mrs. John Bradley (Florence Briggs Thayer)', 'Heikkinen, Miss. Laina', 'Futrelle, Mrs. Jacques Heath (Lily May Peel)', 'Allen, Mr. William Henry', 'Moran, Mr. James', 'McCarthy, Mr. Timothy J', 'Palsson, Master. Gosta Leonard', 'Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)', 'Nasser, Mrs. Nicholas (Adele Achem)', 'Sandstrom, Miss. Marguerite Rut', 'Bonnell, Miss. Elizabeth', 'Saundercock, Mr. William Henry', 'Andersson, Mr. Anders Johan', 'Vestrom, Miss. Hulda Amanda Adolfina', 'Hewlett, Mrs. (Mary D Kingcome) ', 'Rice, Master. Eugene', 'Williams, Mr. Charles Eugene', 'Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)', 'Masselmani, Mrs. Fatima', 'Fynney, Mr. Joseph J', 'Beesley, Mr. Lawrence', 'McGowan, Miss. Anna "Annie"', 'Sloper, Mr. William Thompson', 'Palsson, Miss. Torborg Danira', 'Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)', 'Emir, Mr. Farred Chehab', 'Fortune, Mr. Charles Alexander', 'Dwyer, Miss. Ellen "Nellie"', 'Todoroff, Mr. Lalio'] ``` ``` ๋นˆ๋„์ˆ˜ = 0 for data in dataset: for i in reange(len(data)): if data[i] == 'M' : ๋นˆ๋„์ˆ˜ += 1 print(๋นˆ๋„์ˆ˜) ์ถœ๋ ฅ > 38 ```
๐Ÿ” ํ ๊ฐœ๋… ์ •๋ฆฌ ## ํ (Queue) ### 1. ํ ๊ตฌ์กฐ * ์ค„์„ ์„œ๋Š” ํ–‰์œ„์™€ ์œ ์‚ฌ * ๊ฐ€์žฅ ๋จผ์ € ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ - ์Œ์‹์ ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์ค„์„ ์„  ์‚ฌ๋žŒ์ด ์ œ์ผ ๋จผ์ € ์Œ์‹์ ์— ์ž…์žฅํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผ - FIFO(First-In, First-Out) ๋˜๋Š” LILO(Last-In, Last-Out) ๋ฐฉ์‹์œผ๋กœ ์Šคํƒ๊ณผ ๊บผ๋‚ด๋Š” ์ˆœ์„œ๊ฐ€ ๋ฐ˜๋Œ€ * ์ถœ์ฒ˜: http://www.stoimen.com/blog/2012/06/05/computer-algorithms-stack-and-queue-data-structure/ ### 2. ์•Œ์•„๋‘˜ ์šฉ์–ด * Enqueue: ํ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ธฐ๋Šฅ * Dequeue: ํ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ๊ธฐ๋Šฅ * Visualgo ์‚ฌ์ดํŠธ์—์„œ ์‹œ์—ฐํ•ด๋ณด๋ฉฐ ์ดํ•ดํ•˜๊ธฐ (enqueue/dequeue ๋งŒ ํด๋ฆญํ•ด๋ณด๋ฉฐ): https://visualgo.net/en/list ### 3. ํŒŒ์ด์ฌ queue ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉํ•ด์„œ ํ ์ž๋ฃŒ ๊ตฌ์กฐ ์‚ฌ์šฉํ•˜๊ธฐ * **queue ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” ๋‹ค์–‘ํ•œ ํ ๊ตฌ์กฐ๋กœ Queue(), LifoQueue(), PriorityQueue() ์ œ๊ณต** * ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ํ”„๋กœ๊ทธ๋žจ์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉ - Queue(): ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ ์ž๋ฃŒ ๊ตฌ์กฐ - LifoQueue(): ๋‚˜์ค‘์— ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ถœ๋ ฅ๋˜๋Š” ๊ตฌ์กฐ (์Šคํƒ ๊ตฌ์กฐ๋ผ๊ณ  ๋ณด๋ฉด ๋จ) - PriorityQueue(): ๋ฐ์ดํ„ฐ๋งˆ๋‹ค ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋„ฃ์–ด์„œ, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ > ์ผ๋ฐ˜์ ์ธ ํ ์™ธ์— ๋‹ค์–‘ํ•œ ์ •์ฑ…์ด ์ ์šฉ๋œ ํ๋“ค์ด ์žˆ์Œ #### โœ” 3.1. Queue()๋กœ ํ ๋งŒ๋“ค๊ธฐ (๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ, FIFO(First-In, First-Out)) ``` import queue #ํ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž„ํฌํŠธ data_queue = queue.Queue() # ๋ณ€์ˆ˜๋ฅผ Queue๋กœ ์„ ์–ธ data_queue.put("funcoding") # put์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ data_queue.put(1) data_queue.qsize() # Queue์˜ ํฌ๊ธฐ ์ถœ๋ ฅ data_queue.get() # Queue ๋ฐ์ดํ„ฐ ๋ฝ‘๊ธฐ data_queue.get() ``` ``` ์ถœ๋ ฅ > 2 #data_queue.qsize() ์ถœ๋ ฅ > funcoding #data_queue.get() ์ถœ๋ ฅ > 1 #data_queue.get() ``` #### โœ” 3.2. LifoQueue()๋กœ ํ ๋งŒ๋“ค๊ธฐ (LIFO(Last-In, First-Out)) ``` import queue data_queue = queue.LifoQueue() data_queue.put("funcoding") data_queue.put(1) data_queue.qsize() data_queue.get() ``` ``` ์ถœ๋ ฅ > 2 #data_queue.qsize() ์ถœ๋ ฅ > 1 #data_queue.get() ``` #### โœ” 3.3. PriorityQueue()๋กœ ํ ๋งŒ๋“ค๊ธฐ ``` import queue data_queue = queue.PriorityQueue() data_queue.put((10, "korea")) data_queue.put((5, 1)) data_queue.put((15, "china")) data_queue.qsize() data_queue.get() data_queue.get() ``` ``` ์ถœ๋ ฅ > 3 #data_queue.qsize() ์ถœ๋ ฅ > (5, 1) #data_queue.get() ์ถœ๋ ฅ > (10, 'korea') #data_queue.get() ``` ### โœ” ์ฐธ๊ณ : ์–ด๋””์— ํ๊ฐ€ ๋งŽ์ด ์“ฐ์ผ๊นŒ? - ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ฅด๋ง ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์ด ์‚ฌ์šฉ๋จ (์šด์˜์ฒด์ œ ์ฐธ์กฐ) > ํ์˜ ๊ฒฝ์šฐ์—๋Š” ์žฅ๋‹จ์  ๋ณด๋‹ค๋Š” (ํŠน๋ณ„ํžˆ ์–ธ๊ธ‰๋˜๋Š” ์žฅ๋‹จ์ ์ด ์—†์Œ), ํ์˜ ํ™œ์šฉ ์˜ˆ๋กœ ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ฅด๋ง ๋ฐฉ์‹์„ ํ•จ๊ป˜ ์ดํ•ดํ•ด๋‘๋Š” ๊ฒƒ์ด ์ข‹์Œ ### 4. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต
์—ฐ์Šต1: ๋ฆฌ์ŠคํŠธ ๋ณ€์ˆ˜๋กœ ํ๋ฅผ ๋‹ค๋ฃจ๋Š” enqueue, dequeue ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ
``` queue_list = list() def enqueue(data): queue_list.append(data) def dequeue(): data = queue_list[0] del queue_list[0] return data for index in range(10): enqueue(index) len(queue_list) dequeue() ``` ``` ์ถœ๋ ฅ > 10 # len(queue_list) ์ถœ๋ ฅ > 2 # dequeue() ```

๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ ๋ฉค๋ฒ„



์ •๋ณด๋ณด์•ˆ์ „๊ณต
๊น€ํ˜•๋ฏผ (Python)

์ •๋ณด๋ณด์•ˆ์ „๊ณต
๊น€๋ฏผ์„ฑ (JAVA)

์ •๋ณด๋ณด์•ˆ์ „๊ณต
๋ฐ•๊ด‘ํ˜„ (Swift)

์ •๋ณด๋ณด์•ˆ์ „๊ณต
์ด์ •ํ˜„ (javaScript)

Baekjoon
solved.ac

Baekjoon
solved.ac

Baekjoon
solved.ac

Baekjoon
solved.ac




๐Ÿ“– ์ง„ํ–‰ ์ˆœ์„œ


์ˆœ์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์ง‘ ์ด ๋ฌธ์ œ ์ˆ˜ ํ†ต๊ณผ ๊ธฐ์ค€ ์ˆ˜ ์ƒํƒœ
00 ์ž…์ถœ๋ ฅ๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ ๋ฐ”๋กœ๊ฐ€๊ธฐ 11 11 4/4
01 if ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ 5 5 4/4
02 for ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ 11 11 4/4
03 while๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ 3 3 4/4
04 1์ฐจ์› ๋ฐฐ์—ด ๋ฐ”๋กœ๊ฐ€๊ธฐ 7 7 4/4
05 ํ•จ์ˆ˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ 3 3 4/4
06 ๋ฌธ์ž์—ด ๋ฐ”๋กœ๊ฐ€๊ธฐ 10 10 4/4
07 ๊ธฐ๋ณธ ์ˆ˜ํ•™1 ๋ฐ”๋กœ๊ฐ€๊ธฐ 9 9 4/4
08 ๊ธฐ๋ณธ ์ˆ˜ํ•™2 ๋ฐ”๋กœ๊ฐ€๊ธฐ 11 11 1/4
09 ์žฌ๊ท€ ๋ฐ”๋กœ๊ฐ€๊ธฐ 4 4 1/4
10 ๋ธŒ๋ฃจํŠธ ํฌ์Šค ๋ฐ”๋กœ๊ฐ€๊ธฐ 5 5 1/4
11 ์ •๋ ฌ ๋ฐ”๋กœ๊ฐ€๊ธฐ 10 10 1/4
12 ์ž๋ฃŒ๊ตฌ์กฐ 1 ๋ฐ”๋กœ๊ฐ€๊ธฐ 19 19 0/4
13 ์ˆ˜ํ•™ 1 ๋ฐ”๋กœ๊ฐ€๊ธฐ 19 19 0/4
14 ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1 ๋ฐ”๋กœ๊ฐ€๊ธฐ 29 29 0/4
15 ๋ธŒ๋ฃจํŠธ ํฌ์Šค 2 ๋ฐ”๋กœ๊ฐ€๊ธฐ 8 8 0/4
16 ๋ธŒ๋ฃจํŠธ ํฌ์Šค(N,M) ๋ฐ”๋กœ๊ฐ€๊ธฐ 12 12 0/4
17 ๋ธŒ๋ฃจํŠธ ํฌ์Šค (์ˆœ์—ด) ๋ฐ”๋กœ๊ฐ€๊ธฐ 6 6 0/4
18 ๋ธŒ๋ฃจํŠธ ํฌ์Šค (๋น„ํŠธ๋งˆ์Šคํฌ) ๋ฐ”๋กœ๊ฐ€๊ธฐ 4 4 0/4
19 ๊ทธ๋ž˜ํ”„ 1 ๋ฐ”๋กœ๊ฐ€๊ธฐ 14 14 0/4
20 BFS ๋ฐ”๋กœ๊ฐ€๊ธฐ 5 5 4/4
21 ํŠธ๋ฆฌ 1 ๋ฐ”๋กœ๊ฐ€๊ธฐ 5 5 0/4
22 ์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ null null ์ค€๋น„์ค‘..
23 null null null null ์ค€๋น„์ค‘..