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.. ์ด์ 1 2 3 4 ๋ค์