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

๋ฐ˜์‘ํ˜•

Programming/Softeer

(26)
[Softeer][level3] ์—ผ๊ธฐ์„œ์—ด ์ปค๋ฒ„ (python) https://softeer.ai/practice/info.do?idx=1&eid=1526 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ํ•ด์„ค์˜์ƒ https://www.youtube.com/watch?v=wgw6i6jGc0A ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ import sys N, M = map(int, input().split()) dna = [list(input()) for _ in range(N)] superDNA = [None for _ in range(2 ** N)] superDNA[0] = ['.'] * M def merge(dna1, dna2) : dna = [] if dna1 == [] or dna2 == [] : return [] dna = [] ..
[Softeer][level3] ์ถœํ‡ด๊ทผ๊ธธ (python) https://softeer.ai/practice/info.do?idx=1&eid=1529 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ์—ญ๋ฐฉํ–ฅ ๊ฐ„์„  ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉ. ์—ญ๋ฐฉํ–ฅ ๊ฐ„์„  ๊ทธ๋ž˜ํ”„์—์„œ T๊ฐ€ ์–ด๋–ค ์ •์ ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ •๋ฐฉํ–ฅ์—์„œ ํ•ด๋‹น ์ •์ ์ด T์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™œ์šฉ. ์•„๋ž˜๋Š” ์˜ค๋‹ต ์ˆ˜๊ฐ€ ๋งŽ์•„ ์ฒ˜์Œ์— 0์  ๋‚˜์˜จ ์ฝ”๋“œ. ์–ด๋–ค ๋ถ€๋ถ„์ด ํ‹€๋ ธ๋Š”์ง€ ์ง€์ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค... import sys from collections import deque n, m = map(int, input().split()) adj = [[] for _ in range(n + 1)] adj_reverse = [[] for _ in range(n + 1)] for _ i..
[Softeer][level3] ์ž๋™์ฐจ ํ…Œ์ŠคํŠธ (python) https://softeer.ai/practice/info.do?idx=1&eid=1717 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด binary search ๋ฌธ์ œ. python์—๋Š” bisect ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ ๊ฐ€๋Šฅ. bisect_left()๋ฅผ ํ†ตํ•ด ์ค‘๊ฐ„๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์™ผ์ชฝ ์œ„์น˜์˜ index๋ฅผ ์ฐพ๊ณ  ์ค‘๊ฐ„๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฒƒ๋“ค ์ค‘(์ค‘๊ฐ„๊ฐ’ ๊ธฐ์ค€ ์™ผ์ชฝ) ํ•˜๋‚˜, ์ค‘๊ฐ„๊ฐ’๋ณด๋‹ค ํฐ ๊ฒƒ๋“ค ์ค‘(์ค‘๊ฐ„๊ฐ’ ๊ธฐ์ค€ ์˜ค๋ฅธ์ชฝ) ํ•˜๋‚˜ ๊ณ ๋ฅด๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์•„์•ผํ•จ -> ์ค‘๊ฐ„๊ฐ’ ๊ธฐ์ค€ ์™ผ์ชฝ์— ์žˆ๋Š” ์ˆ˜์˜ ๊ฐฏ์ˆ˜ * ์ค‘๊ฐ„๊ฐ’ ๊ธฐ์ค€ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์ˆ˜์˜ ๊ฐฏ์ˆ˜ = ์ด ๊ฒฝ์šฐ์˜ ์ˆ˜ EX) ์ž…๋ ฅ์˜ˆ์ œ 1์—์„œ ์—ฐ๋น„๋ฅผ ์ •๋ ฌํ•˜๋ฉด [1,2,3,5,6]์ธ๋ฐ, ์ค‘๊ฐ„๊ฐ’์ด 3์ธ ๊ฒฝ์šฐ bisect_left์˜ ์ถœ๋ ฅ๊ฐ’์€ 2๊ฐ€ ๋˜๊ณ  [1..
[Softeer][level3] ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๊ธฐ (python) https://softeer.ai/practice/info.do?idx=1&eid=2050 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ์žฌ๊ท€์ ์œผ๋กœ DFS ํ™œ์šฉ ๋ฌธ์ œ. ์ฝ”๋“œ import sys n, m = map(int, input().split()) Map = [list(map(int, input().split())) for _ in range(n)] points = [] for _ in range(m) : r, c = map(int, input().split()) points.append([r - 1, c - 1]) visited = [[0] * n for _ in range(n)] def DFS(loc, cnt) : global ans if loc =..
[Softeer][level3] ๋กœ๋ด‡์ด ์ง€๋‚˜๊ฐ„ ๊ฒฝ๋กœ (python) https://softeer.ai/practice/info.do?idx=1&eid=577 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด bfs๋กœ ํ’€์ด. ์ฒ˜์Œ ์‹œ์ž‘์ ์„ ์ฐพ์„ ๋•Œ, '#'์ธ ๊ฒฝ์šฐ๋ฅผ ์ฐพ๊ณ  ์ฃผ๋ณ€์— '#'์ด ์œ ์ผํ•œ ๊ฒฝ์šฐ(์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์ •ํ•ด์ง„ ๊ฒฝ์šฐ) ์‹œ์ž‘์ ์œผ๋กœ ํŒ๋‹จ. ๋งˆ์ง€๋ง‰์— ๊ฒฝ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ, ์ด ์ „์— ๊ฐ™์€๊ฒŒ ๋‚˜์™”๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ flag๋กœ ๊ตฌ๋ณ„ํ•˜์—ฌ R, L์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •. ์ฝ”๋“œ import sys from pprint import pprint from collections import deque H, W = map(int, input().split()) map = [list(sys.stdin.readline().rstrip()) f..
[Softeer][level3] ์•ˆ์ „์šด์ „์„ ๋„์™€์ค„ ์ฐจ์„ธ๋Œ€ ์ง€๋Šฅํ˜• ๊ตํ†ต์‹œ์Šคํ…œ (python) https://softeer.ai/practice/info.do?idx=1&eid=580 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด BFS๋ฌธ์ œ. ์‚ฌ์ „์— ์ •์˜๋œ ๊ต์ฐจ๋กœ ์ •๋ณด ์ €์žฅํ•˜๊ณ  ํ•˜๋‚˜์”ฉ ๋ฐฉ๋ฌธํ•ด์„œ ๊ฐฏ์ˆ˜ count ์ฒ˜์Œ์— 20์ ์ด ๋‚˜์˜ค๋Š”๋ฐ ํ‹€๋ฆฐ ๋ถ€๋ถ„์„ ์ฐพ๋А๋ผ ์˜ค๋ž˜ ๊ฑธ๋ฆผ. ๋ฐฉ๋ฌธํ–ˆ๋˜ ๊ณณ์ด์–ด๋„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•ด๋„ ๊ดœ์ฐฎ์•˜์Œ import sys from collections import deque from pprint import pprint N, T = map(int, input().split()) intersection = [[0] + [] for i in range(N + 1)] for i in range(1, N + 1) : for j in range(1, N ..
[Softeer][level4] ์ง€์šฐ๋Š” ์†Œ์ˆ˜๋ฅผ ์ข‹์•„ํ•ด (python) https://softeer.ai/practice/info.do?idx=1&eid=582 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ. ์ตœ์†Œ ๊ฑฐ๋ฆฌ ์ฐพ์„ ๋•Œ ์ •๋ ฌํ•˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ค„์ด๊ธฐ ์œ„ํ•ด heapq๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ์ค‘ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๊ฐ€์žฅ ์งง์€ ๋…ธ๋“œ ์„ ํƒ. [์†Œ์ˆ˜ ํ™•์ธ] - 2๋ถ€ํ„ฐ ํ™•์ธํ•˜๋ ค๋Š” ์ˆ˜ N์˜ ์ค‘์‹ฌ๊ฐ’์ธ √N ๊นŒ์ง€ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋‚˜๋ˆ ๋–จ์–ด์ง€์ง€ ์•Š๋Š”์ง€ ํ™•์ธ -> O(√N) ์ฝ”๋“œ import sys import heapq N, M = map(int,input().split()) node = [[] for i in range(N + 1)] # node ์ •๋ณด ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ INF = int(1e9) dist =..
[Softeer][level3] ๊ฐ•์˜์‹ค ๋ฐฐ์ • (python) https://softeer.ai/practice/info.do?idx=1&eid=392 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์— ๋‹จ์ˆœํžˆ ์‹œ์ž‘ ์‹œ๊ฐ„ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋‹ˆ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐœ์ƒ import sys N = int(input()) schedule = [] for _ in range(N) : schedule.append(list(map(int, input().split()))) schedule.sort(key=lambda x:x[0]) cnt = 0 start_time = 1 for start, end in schedule : if start >= start_time : cnt += 1 start_time = end print(cnt) heapq..

๋ฐ˜์‘ํ˜•