백준 알고리즘(42)
-
[백준/Python] 1629_곱셈
문제 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 코드 import sys def power(a, b): if b == 1: return a % C temp = power(a, b // 2) if b % 2 == 0: # 짝수 return (temp * temp) % C else: # 홀수 return (temp * temp * a) % C A, B, C = map(int, sys.stdin.readline().rstrip().split()) print(power(A, B)) 풀이 모듈러 연산은 다음의 3..
2021.07.05 -
[백준/Python] 11048_이동하기
문제 https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 코드 import sys n, m = map(int, sys.stdin.readline().rstrip().split()) matrix = [[0] * (m + 1) for _ in range(n + 1)] for i in range(1, n + 1): lst = list(map(int, sys.stdin.readline().rstrip().split())) for j in r..
2021.07.05 -
[백준/Python] 2294_동전2
문제 https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 코드 import sys n, k = map(int, sys.stdin.readline().rstrip().split()) coins = [] # 동전의 가치 for _ in range(n): coins.append(int(sys.stdin.readline().rstrip())) dp = [-1] * (k + 1) # 초기화 dp[0] = 0 # 초기값 for ..
2021.07.03 -
[백준/Python] 1080_행렬
문제 https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 코드 import sys def convert_matrix(r, c, matrix): for i in range(r, r + 3): for j in range(c, c + 3): matrix[i][j] = 1 - matrix[i][j] n, m = map(int, sys.stdin.readline().rstrip().split()) standard_matrix = [] # 기준 행렬 change_matri..
2021.07.03 -
[백준/Python] 1325_효율적인 해킹
문제 https://www.acmicpc.net/problem/1325
2021.07.02 -
[백준/Python] 18870_ 좌표 압축
문제 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 코드 import sys n = int(sys.stdin.readline().rstrip()) numbers = list(map(int, sys.stdin.readline().rstrip().split())) lst = sorted(list(set(numbers))) lst_dic = dict() for i in range(len(lst)):..
2021.07.02