๐ฑ Algorithm(53)
-
๋ฐฑ์ค 1174 ์ค์ด๋๋ ์ ํ์ด์ฌ
1174๋ฒ: ์ค์ด๋๋ ์ ์์ด ์๋ ์ ์๋ฅผ ์ญ์ง๋ฒ์ผ๋ก ํ๊ธฐํ์ ๋, ์ผ์ชฝ์์๋ถํฐ ์๋ฆฌ์๊ฐ ๊ฐ์ํ ๋, ๊ทธ ์๋ฅผ ์ค์ด๋๋ ์๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 321์ 950์ ์ค์ด๋๋ ์์ด๊ณ , 322์ 958์ ์๋๋ค. N๋ฒ์งธ๋ก ์์ ์ค์ด๋๋ www.acmicpc.net ์กฐํฉ ํ์ด from itertools import combinations N = int(input()) result = set() for i in range(1, 11): for com in combinations(range(0, 10), i): com = sorted(com, reverse=True) result.add(int(''.join(map(str, com)))) result = sorted(result) try: print(result[..
2022.12.26 -
๋ฐฑ์ค 1895 ํํฐ ํ์ด์ฌ
1895๋ฒ: ํํฐ ์ซ์ 9๊ฐ๊ฐ ์ค๋ฆ์ฐจ์์ด๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ ๋, ์ค์๊ฐ์ ๋ค์ฏ ๋ฒ์งธ ์ซ์์ด๋ค. ์๋ฅผ ๋ค์ด, 1, 3, 4, 1, 2, 6, 8, 4, 10์ ์ค์๊ฐ์ 4์ด๋ค. (1 ≤ 1 ≤ 2 ≤ 3 ≤ 4 ≤ 4 ≤ 6 ≤ 8 ≤ 10) ์ด๋ฏธ์ง I๋ www.acmicpc.net R, C = map(int, input().split()) board = [list(map(int, input().split())) for r in range(R)] T = int(input()) def get_median(arr: list): arr.sort() return arr[4] moveC = C - 2 moveR = R - 2 result = [] for mr in range(moveR): for mc i..
2022.12.21 -
๋ฐฑ์ค ๋ฌผ๋ณ 1052๋ฒ ํ์ด์ฌ
1052๋ฒ: ๋ฌผ๋ณ ์ง๋ฏผ์ด๋ N๊ฐ์ ๋ฌผ๋ณ์ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ ๋ฌผ๋ณ์๋ ๋ฌผ์ ๋ฌดํ๋๋ก ๋ถ์ ์ ์๋ค. ์ฒ์์ ๋ชจ๋ ๋ฌผ๋ณ์๋ ๋ฌผ์ด 1๋ฆฌํฐ์ฉ ๋ค์ด์๋ค. ์ง๋ฏผ์ด๋ ์ด ๋ฌผ๋ณ์ ๋ ๋ค๋ฅธ ์ฅ์๋ก ์ฎ๊ธฐ๋ ค๊ณ ํ๋ค. ์ง๋ฏผ์ด๋ ํ ๋ฒ www.acmicpc.net ์ ๊ทผ ์ด์ง๋ฒ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ค. ์ฝ๋ ์ ๋ ฅ๋ฐ์ ์ซ์ N์ bin() ๋ฉ์๋๋ก ์ด์ง์๋ก ๋ณํํ๊ณ 1์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค. ์ด 1์ ๊ฐ์๊ฐ ํด๋น ์ซ์ N ์์ ๋ง๋ค ์ ์๋ ๋ฌผ๋ณ์ ๊ฐฏ์๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด N ์ด 3์ด๋ผ๋ฉด, ์ธ ๊ฐ์ ๋ฌผ๋ณ์์ ๋ฌธ์ ์ ์กฐ๊ฑด๋๋ก ๋ง๋ค ์ ์๋ ๋ฌผ๋ณ์ ๊ฐ์๋ 2๊ฐ๊ฐ ๋๋ค. ๊ทธ๋์ while bin(N).count('1') > K: ์ด๋ผ๋ ์กฐ๊ฑด์์ ๋ง๋ค ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง๋ค๊ณ ์ ํ๋ ๋ฌผ๋ณ์ ๊ฐ์๋ K ๋ฅผ ๋์ง ์์์ผ ํ๋๊น. # 1. ์ผ์ผ์ด ๋ค ๋..
2022.07.18 -
๋ฐฑ์ค ์์ด 2559๋ฒ ํ์ด์ฌ
https://www.acmicpc.net/problem/2559 2559๋ฒ: ์์ด ์ฒซ์งธ ์ค์๋ ๋ ๊ฐ์ ์ ์ N๊ณผ K๊ฐ ํ ๊ฐ์ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ ์ ์ N์ ์จ๋๋ฅผ ์ธก์ ํ ์ ์ฒด ๋ ์ง์ ์์ด๋ค. N์ 2 ์ด์ 100,000 ์ดํ์ด๋ค. ๋ ๋ฒ์งธ ์ ์ K๋ ํฉ์ ๊ตฌํ๊ธฐ www.acmicpc.net ํ์ด deque ์ ์ด์ฉํด ํ์๋ค. ๋ค๋ฅธ ๋ถ๋ค์ ํฌํฌ์ธํฐ ๋ฑ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ฐ ๋๋ deque ์ด ๊ฐ์ฅ ์ง๊ด์ ์ด๋ผ ๋๊ปด์ก๋ค. ์ฐ์ ๊ฐ์ฅ ๋จ์ํ๊ฒ ์ ๊ทผํ๋ฉด ๋ฆฌ์คํธ ์ฌ๋ผ์ด์ฑ์ ๋จผ์ ๋ ์ฌ๋ฆด ์ ์๋ค. ํ์ง๋ง ์ ๋ ฅ์ ์ต๋ ํฌ๊ธฐ๊ฐ ์ญ๋ง์ด๊ธฐ ๋๋ฌธ์ ๋น์ฐํ ์๊ฐ์ด๊ณผ ๋ฌธ์ ๊ฐ ํฐ์ง๋ค. ์ด์ ๋๋ฉด b๊ธ ์ํ์ ๋ปํ ์๋์์ค๋ณด๋ค ๋ ๋ปํ ์ ๊ฐ๊ฐ ์๋ ์ ์๋ค. ํด๋ฆฌ์ ฐ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋๋ deque ๋ฅผ ..
2022.07.12 -
๋ฐฑ์ค 1987 ์ํ๋ฒณ ํ์ด์ฌ
https://www.acmicpc.net/problem/1987 1987๋ฒ: ์ํ๋ฒณ ์ธ๋ก R์นธ, ๊ฐ๋ก C์นธ์ผ๋ก ๋ ํ ๋ชจ์์ ๋ณด๋๊ฐ ์๋ค. ๋ณด๋์ ๊ฐ ์นธ์๋ ๋๋ฌธ์ ์ํ๋ฒณ์ด ํ๋์ฉ ์ ํ ์๊ณ , ์ข์ธก ์๋จ ์นธ (1ํ 1์ด) ์๋ ๋ง์ด ๋์ฌ ์๋ค. ๋ง์ ์ํ์ข์ฐ๋ก ์ธ์ ํ ๋ค ์นธ ์ค์ ํ ์นธ์ผ www.acmicpc.net ์ ๊ทผ ์ฒ์์ queue ๋ฅผ ์ฌ์ฉํด bfs ๋ก ์ ๊ทผํ์ง๋ง, ์ด ๋ฌธ์ ๋ dfs ๋ก๋ง ํ ์ ์๋ค. ํ๋์์ BFS ์ ๊ทผ์ ๋ํ๋ด๊ณ , ๋ถํ์์ DFS ์์ ์ ๊ทผ์ ๋ํ๋ธ๋ค. ๋ฌธ์ ์์ ๊ตฌํ๊ณ ์ ํ๋ ๊ฒ์ ์ต๋ํ ์ผ๋ง๋งํผ ๋ป์ด๋๊ฐ ์ ์๋์ง๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ์, ๋ถํ์์ DFS ์์ผ๋ก ์ ๊ทผํด์ผ ๋ต์ ๊ตฌํ ์ ์๋ค. ์ฝ๋ r, c = map(int, input().split()) maps = [] fo..
2022.07.08 -
๋ฐฑ์ค 1213 ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ ํ์ด์ฌ
https://www.acmicpc.net/problem/1213
2022.07.05 -
๋ฐฑ์ค 2346 ํ์ ํฐ๋จ๋ฆฌ๊ธฐ ํ์ด์ฌ
https://www.acmicpc.net/problem/2346 2346๋ฒ: ํ์ ํฐ๋จ๋ฆฌ๊ธฐ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๊ฐ์ ํ์ ์ด ์ํ์ผ๋ก ๋์ฌ ์๊ณ . i๋ฒ ํ์ ์ ์ค๋ฅธ์ชฝ์๋ i+1๋ฒ ํ์ ์ด ์๊ณ , ์ผ์ชฝ์๋ i-1๋ฒ ํ์ ์ด ์๋ค. ๋จ, 1๋ฒ ํ์ ์ ์ผ์ชฝ์ N๋ฒ ํ์ ์ด ์๊ณ , N๋ฒ ํ์ ์ ์ค๋ฅธ์ชฝ์ 1๋ฒ ํ์ www.acmicpc.net ํต์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ ํต์ฌ์ deque() ์๋ฃํ์ rotate() ๋ฉ์๋๋ค. rotate(n)๋ deque ์ ๋ด์ฅํจ์๋ก, n ์ด ์์๋ฉด ์ฐ์ธก์ผ๋ก, ์์๋ฉด ์ข์ธก์ผ๋ก ํ์ ํ๋ค๊ณ ๋ณผ ์ ์๋ค. ์ฝ๋ import sys from collections import deque input = sys.stdin.readline n = int(input()) q = deque(e..
2022.07.04 -
๋ฐฑ์ค ์ ํ ์ ํ 11060 ํ์ด์ฌ
https://www.acmicpc.net/problem/11060 11060๋ฒ: ์ ํ ์ ํ ์ฌํ์ด๊ฐ 1×N ํฌ๊ธฐ์ ๋ฏธ๋ก์ ๊ฐํ์๋ค. ๋ฏธ๋ก๋ 1×1 ํฌ๊ธฐ์ ์นธ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ ์นธ์๋ ์ ์๊ฐ ํ๋ ์ฐ์ฌ ์๋ค. i๋ฒ์งธ ์นธ์ ์ฐ์ฌ ์๋ ์๋ฅผ Ai๋ผ๊ณ ํ์ ๋, ์ฌํ์ด๋ Ai์ดํ๋งํผ ์ค๋ฅธ์ชฝ์ผ๋ก www.acmicpc.net ์ฒ์ ํผ ์ฝ๋ ( ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ) ์๊ฐ ์ด๊ณผ๋ ์๋๊ณ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฌ๋ค. ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๋ฅผ ์์ฌํด ๋ณผ ๋ถ๋ถ์ ๋ฐฐ์ด์ด๋ ํ์ ๋๋ฌด ๋ง์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ ๊ณณ์ด๋ค. ์๋ ์ฝ๋์์๋ ๋ฑ(deque)์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๋ถ๋ถ์ ์์ฌํด ๋ณผ ๋งํ๋ค๊ณ ์๊ฐํ๋ค. import sys from collections import deque input = sys.stdin.readline t = int(inpu..
2022.03.11 -
๋ฐฑ์ค 10844 ํ์ด์ฌ
10844๋ฒ: ์ฌ์ด ๊ณ๋จ ์ ์ฒซ์งธ ์ค์ ์ ๋ต์ 1,000,000,000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์ ๋ต ์ฝ๋ N = int(input()) array = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1] board = [] if N == 1: print(9) exit() else: board.append(array) for n in range(1, N): temp = [] for j in range(10): if j == 0: temp.append((board[n - 1][1])) elif j == 9: temp.append((board[n - 1][8])) else: temp.append((board[n - 1][j - 1] + board[n - 1][j + 1]))..
2022.01.29