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

๋ฐ˜์‘ํ˜•

Programming

(40)
[Softeer][level2] ์ง€๋„ ์ž๋™ ๊ตฌ์ถ• (python) https://softeer.ai/practice/info.do?idx=1&eid=413 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ๊ฒฐ๊ตญ ์ถœ๋ ฅ๊ฐ’์€ ํ•œ ๋ณ€์— ์กด์žฌํ•˜๋Š” ์ ์˜ ๊ฐฏ์ˆ˜์˜ ์ œ๊ณฑ. ------------------------------ N | ํ•œ ๋ณ€์˜ ์  ๊ฐฏ์ˆ˜ 1 | 3 2 | 5 3 | 9 4 | 17 5 | 33 ์ด๋ ‡๊ฒŒ ๋˜๋ฏ€๋กœ ํ•œ ๋ณ€์˜ ์กด์žฌํ•˜๋Š” ์ ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ œ๊ณฑํ•จ ์ฝ”๋“œ import sys import math N = int(input()) num_pnt = 3 # ํ•œ ๋ณ€์˜ ์กด์žฌํ•˜๋Š” ์ ์˜ ๊ฐฏ์ˆ˜ for _ in range(N-1) : num_pnt = num_pnt * 2 - 1 print(int(math.pow(num_pnt,2)))
[Softeer][level2] ์žฅ์• ๋ฌผ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ(python) https://softeer.ai/practice/info.do?idx=1&eid=409 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด BFS๋ฅผ ์‚ฌ์šฉ. ์žฅ์• ๋ฌผ์ด ์•„๋‹ˆ๊ณ  ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋˜ ์œ„์น˜์—์„œ bfs๋ฅผ ํ†ตํ•ด ํƒ์ƒ‰ ์˜์—ญ์„ result์— ์ถ”๊ฐ€. ๋งˆ์ง€๋ง‰์— sortํ•ด์ฃผ๋Š” ๊ฒƒ ์ฃผ์˜ ์ฝ”๋“œ import sys from collections import deque dx = [1, 0, -1, 0] dy = [0, -1, 0, 1] results = [] def BFS(y,x) : cnt = 1 queue = deque() queue.append([y,x]) visited[y][x] = True while queue : ty, tx = queue.popleft() for ..
[Softeer][level2] 8๋‹จ ๋ณ€์†๊ธฐ (python) https://softeer.ai/practice/info.do?idx=1&eid=408 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ๊ฐ’์˜ ์ฒ˜์Œ ๊ฐ’์œผ๋กœ๋ถ€ํ„ฐ answer๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋’ค์— ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•ด๊ฐ€๋ฉฐ ์กฐ๊ฑด์— ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ 'mixed'๋กœ return ์ฝ”๋“œ import sys nums = list(map(int, input().split())) def ans(nums) : start = nums[0] if start == 1 : answer = "ascending" elif start == 8 : answer = "descending" else : return "mixed" for i in nums[1:] : if answer == ..
[softeer][level2] ๊ธˆ๊ณ ํ„ธ์ด (python) https://softeer.ai/practice/info.do?idx=1&eid=395 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ฐฐ๋‚ญ์˜ ๋ฌด๊ฒŒ W์™€ ๊ท€๊ธˆ์†์˜ ์ข…๋ฅ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. i + 1 (1 ≤ i ≤ N)๋ฒˆ์งธ ์ค„์—๋Š” i๋ฒˆ์งธ ๊ธˆ์†์˜ ๋ฌด๊ฒŒ Mi์™€ ๋ฌด๊ฒŒ๋‹น ๊ฐ€๊ฒฉ Pi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ฐฐ๋‚ญ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋น„์‹ผ ๊ฐ€๊ฒฉ์„ ์ถœ๋ ฅํ•˜๋ผ. ํ•ด๊ฒฐ๋ฐฉ์‹ ๋ณด์„์„ ๊ฐ€์ ธ๊ฐˆ ๋•Œ ๊ฐ€์žฅ ๋น„์‹ผ ๋ณด์„ ์œ„์ฃผ๋กœ ์ฑ™๊ธฐ๋Š” ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ ๋ณด์„์„ ๊ฐ€๊ฒฉ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋ฐฐ๋‚ญ ๋ฌด๊ฒŒ ๋‚ด์—์„œ ๋น„์‹ผ ๋ณด์„ ์œ„์ฃผ๋กœ ์ฑ™๊ธฐ๋ฉด ๋จ ์ฝ”๋“œ import sys values = [] W, N = map(int, input().split(' ')) for i in range(N) : M, P = m..
#3. ํ•ฉ๋ณ‘ ์ •๋ ฌ, ํ€ต ์ •๋ ฌ ํ•ฉ๋ณ‘ ์ •๋ ฌ ex) n๊ฐœ์˜ ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์›์†Œ๋“ค์„ ํ•ฉ๋ณ‘์ •๋ ฌํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ #include #include #include void makeList (int* L, int n) { for (int i = 0; i < n; i++) { scanf("%d", &L[i]); } } void merge (int* L1, int* L2, int left, int mid, int right) { int i ,j, k, l; i = left; j = mid + 1; k = left; while (i
#2. ํž™๊ณผ ํž™์ •๋ ฌ ํž™(heap) : ๋‚ด๋ถ€ node์— key๋ฅผ ์ €์žฅํ•˜๋ฉฐ heap-order(root๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋‚ด๋ถ€node์— ๋Œ€ํ•ด ์ž์‹node๊ฐ€ ๋ถ€๋ชจnode๋ณด๋‹ค ํฐ Key ๊ฐ€์ง)์™€ ์™„์ „์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ด์ง„ํŠธ๋ฆฌ - ํž™์˜ ๋งˆ์ง€๋ง‰ node : ๊นŠ์ด h - 1์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๋‚ด๋ถ€ node ํž™ ์‚ฝ์ž… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํž™ ์‚ญ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํž™ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ œ์ž๋ฆฌ ํž™ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„์žฌ๊ท€์  ์ƒํ–ฅ์‹ ํž™์ƒ์„ฑ
#1. ์šฐ์„ ์ˆœ์œ„ ํ ์šฐ์„ ์ˆœ์œ„ ํ ADT : ๊ฐ ํ•ญ๋ชฉ๋“ค์„ ์ €์žฅ * ํ•ญ๋ชฉ : key, value ์ฃผ์š” method - insertItem(k,e) : key๊ฐ€ k์ธ ์›์†Œ e๋ฅผ queue์— ์‚ฝ์ž… - removeMin() : queue๋กœ๋ถ€ํ„ฐ ์ตœ์†Œ key๋ฅผ ๊ฐ€์ง„ element๋ฅผ ์‚ญ์ œํ•˜์—ฌ ๋ฐ˜ํ™˜ - size() : queue์˜ ํ•ญ๋ชฉ ์ˆ˜ ๋ฐ˜ํ™˜ - isEmpty() : queue๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ - minElement() : queue์—์„œ ์ตœ์†Œkey๋ฅผ ๊ฐ€์ง„ element๋ฐ˜ํ™˜ - minKey() : queue์—์„œ ์ตœ์†Œ key๋ฐ˜ํ™˜ ์ •๋ ฌ ๋นˆ queue๋ฅผ ์ƒ์„ฑํ•˜๊ณ  list์— ์ €์žฅ๋œ ์›์†Œ๋“ค์„ ๋ชจ๋‘ ์‚ฝ์ž…ํ•ด์„œ ์—ฐ์†์ ์œผ๋กœ removeMin์„ ์‚ฌ์šฉํ•˜์—ฌ ์›์†Œ๋ฅผ ์ •๋ ฌ ์ˆœ์„œ๋กœ ์‚ญ์ œ ์„ ํƒ์ •๋ ฌ(selection sort) : ์šฐ์„ ์ˆœ์œ„ queue์˜ ํ•ญ๋ชฉ๋“ค์„ ..
#6. ์Šคํƒ ์Šคํƒ ADT : ์ž„์˜์˜ ๊ฐœ์ฒด ์ €์žฅ - ํ›„์ž…์„ ์ถœ(Last-In First-Out, LIFO) - top์œ„์น˜์—์„œ ์‚ฝ์ž…, ์‚ญ์ œ ์ˆ˜ํ–‰ ์ค‘์œ„์ˆ˜์‹, ํ›„์œ„์ˆ˜์‹ - 5x3+2+(3+1)x2 - ์•”๋ฌต์  ์šฐ์„ ์ˆœ์œ„ ์กด์žฌ - 5 3 x 2 + 6 4 + 5 x + - ์šฐ์„ ์ˆœ์œ„ ์—†์Œ - ๊ด„ํ˜ธ ์—†์Œ 1. ์ˆ˜์‹ ์ „ํ™˜(convert) : ์ค‘์œ„์ˆ˜์‹์„ ํ›„์œ„์ˆ˜์‹์œผ๋กœ ์ „ํ™˜ -> ์—ฐ์‚ฐ์ž๋ฅผ ์Šคํƒ์— ์ €์žฅ 2. ์ˆ˜์‹ ํ‰๊ฐ€(evaluate) : ํ›„์œ„์ˆ˜์‹๋“ค์„ ํ‰๊ฐ€ -> ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์Šคํƒ์— ์ €์žฅ

๋ฐ˜์‘ํ˜•