๐ algorithm/boj105 BOJ 2644 - ์ด์๊ณ์ฐ ๋ฌธ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 2644๋ฒ ํ์ด ๊ณผ์ ๋ฌธ์ ์กฐ๊ฑด์ ํตํด ๊ฐ ์์์ ์ค์ง ํ๋์ ๋ถ๋ชจ๋ง ์ฃผ์ด์ง๋ฏ๋ก ์ฌ์ดํด ์๋ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ๋ก ๋ํ๋ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด์๋ฅผ ๊ณ์ฐํ๊ณ ์ถ์ ๋ ์ฌ๋์ค ์์๋ก ํ๋ช ์ ์ ํํ ๋ค ๋ค๋ฅธ ํ๋ช ์ ๋๋ฌํ๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ฉด ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค. ์ด๋, ๋๋ฌ ๊ฐ๋ฅ์ฑ ์ ๋ฌด๋ DFS ๋ฅผ ํตํด ๊ณ์ฐ๋ ๊ฑฐ๋ฆฌ๊ฐ์ ํตํด ์ ์ ์๋๋ก ํ์์ต๋๋ค. ์ฝ๋ import sys n = int(input()) target = list(map(int, sys.stdin.readline().split())) m = int(input()) adj = [[] for _ in range(n+1)] for _ in range(m): frm, to = list(map(int, sys.stdin.re.. 2021. 6. 9. BOJ 10026 - ์ ๋ก์์ฝ ๋ฌธ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 10026๋ฒ ํ์ด ๊ณผ์ ์ ๋ ฅ๋ board ์ ํฌ๊ธฐ๊ฐ ํฌ์ง ์์ผ๋ฏ๋ก DFS ํ์์ ํตํด ๋ชจ๋ ๊ตฌ๊ฐ์ ์ฐพ์์คฌ์ต๋๋ค. ์๋งน์ด ์๋ ์ฌ๋๊ณผ ์๋ ์ฌ๋์ ํ์ ์ ์ฝ์กฐ๊ฑด์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ visit ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๋ฐ๋ก ํ์์ ์ํํ์ต๋๋ค. 2๋ฒ์ DFS ๋ฅผ ์ํํด๋ ์ด ์๊ฐ ๋ณต์ก๋๊ฐ O(2n) ์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ด์ ์ํ์ด ๊ฐ๋ฅํ์ต๋๋ค. ์ฝ๋ import sys sys.setrecursionlimit(10**6) N = int(input()) board = [] for _ in range(N): board.append(list(sys.stdin.readline()[:-1])) dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] def dfs(x, y, visit, d.. 2021. 6. 9. BOJ 3135 - ๋ผ๋์ค ๋ฌธ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 3135๋ฒ ํ์ด ๊ณผ์ ๋ผ๋์ค์ ์ธ ๊ฐ์ง ๋ฒํผ์ ์ด์ฉํด์ ๋ชฉํ ์ฃผํ์์ ๋๋ฌํ๋๋ก ํ๋ ์ต์ ๋ฒํผ ์ ๋ ฅ ํ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค. ์ฃผํ์์ ์ต์ ๋ฐ ์ต๋ ์ง์ ์ด ์๋ก ์ด์ด์ ธ์์ง ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ๊ฒ ์ฆ๊ฒจ์ฐพ๊ธฐ ๋ชฉ๋ก๋ค์ ์ฃผํ์๋ค๊ณผ์ ์ฐจ์ด๊ฐ๊ณผ A ์์ B ๊น์ง์ ์ฐจ์ด๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ์ฐพ์ผ๋ฉด ๋ฉ๋๋ค. ์ฝ๋ import sys def solution(): min_value = 2e9 for freq in frequency: min_value = min(min_value, abs(freq - B)) return min(min_value + 1, abs(A - B)) if __name__ == '__main__': A, B = list(map(int, sys.stdin.r.. 2021. 6. 9. BOJ 13410 - ๊ฑฐ๊พธ๋ก ๊ตฌ๊ตฌ๋จ ๋ฌธ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 13410๋ฒ ํ์ด ๊ณผ์ ๊ตฌ๊ตฌ๋จ์ ์ํํ๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ง์์ ๋์ ์ต๋ ๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค. ์๊ตฌ์กฐ๊ฑด์ด ๋ณต์กํ์ง ์๊ณ ์ ๋ ฅ๊ฐ๋ ํฌ์ง ์๊ธฐ ๋๋ฌธ์ ์์ ํ์์ ํตํด ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค. ์ฝ๋ import sys def solution(N, K): max_value = 0 for i in range(1, K + 1): num = str(N * i)[::-1] max_value = max(max_value, int(num)) return max_value if __name__ == '__main__': N, K = list(map(int, sys.stdin.readline().split())) answer = solution(N, K) print(answer) 2021. 6. 8. BOJ 2252 - ์ค ์ธ์ฐ๊ธฐ ๋ฌธ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 2252๋ฒ ํ์ด ๊ณผ์ ์์ ์ ๋ ฌ ์ ํ์ฉํ ํด๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค. ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ง๋ง DFS ๋ฅผ ํ์ฉํด ์์ ์ ๋ ฌ ์ ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํด์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค. ์ฝ๋ import sys n, m = list(map(int, sys.stdin.readline().split())) adj = [[] for _ in range(n+1)] for _ in range(m): frm, to = list(map(int, sys.stdin.readline().split())) adj[frm].append(to) def dfs(here, visit, ans): visit[here] = 1 for there in adj[here]: if not visit[there]:.. 2021. 6. 7. BOJ 2231 - ๋ถํดํฉ ๋ฌธ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 2231๋ฒ ํ์ด ๊ณผ์ ์ด๋ค ๋ถํดํฉ ๊ฒฐ๊ณผ๊ฐ ์์ฐ์ N์ผ๋ ์ด์ ๋ํ ์์ฑ์๋ N๋ณด๋ค ์ ๋ ํด ์ ์๋ค๋ ์ ์ ์ด์ฉํด ๋ธ๋ฃจํธ ํฌ์ค๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค. ์ด๋ ํ ์์ฐ์์ ๊ทธ ์๋ฆฟ์๋ค์ ํฉ์ผ๋ก N์ ๋ง๋ค์ด์ผํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฅํ ๋ชจ๋ ์๋ฅผ ํ์ํ๋ฉด์ ๊ฐ์ฅ ์ฒ์ ๋ฐ๊ฒฌ๋๋ ์์ฑ์๋ฅผ ๋ฐํํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ฝ๋ import sys N = int(input()) def separate_sum(N): temp = 0 for c in str(N): temp += int(c) return N + temp def solution(): answer = 0 for num in range(N): if N == separate_sum(num): answer = num break return.. 2021. 6. 7. ์ด์ 1 2 3 4 5 6 ยทยทยท 18 ๋ค์