백준

1. Matrix Multiplication (행렬곱)- 많은 사람들은 알겠지만, 행렬 곱에 대해서 알아가보고 넘어가보자.- 다음과 같이 행렬 곱을 할 때, (m x k) x (k x n) = (m x n) 꼴로 연산이 되게 된다.- 여기서 핵심은 k처럼 동일한 숫자가 있어야 한다는 것이다.- 이를 계산하기위해 3중 for문을 이용한 행렬곱 알고리즘을 이용한다고 생각했을 때 , 연산 횟수는 m*k*n 이된다.  2. Matrix Chain Multiplication- 만약 행렬곱이 연속적으로 주어져 있다고 가정하자.- A*B*C*Dcf) A : 5x4 , B. 4x6, C : 6 x 2 , D : 2x7- 행렬 곱은 결합법칙이 성립하기 때문에 계산할 수 있는 방법은 다음과 같다. '''i) (((AB)C..
문제 : https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net Code: import sys # 입력으로 받은 정수 n을 저장합니다. n = int(sys.stdin.readline()) # 삼각수의 합을 계산하기 위한 변수 i를 초기화합니다. i = 0 # 삼각수의 합이 n을 초과하지 않는 가장 큰 i를 찾습니다. while n > i * (i + 1) // 2: i += 1 # i를 1 감소시킵니다. i -= 1 # 분모의 합을 구합니다. denominator_sum = i + 2 # i가 홀수일 때와 짝수일 때를 구분하여 출력합니다. if i % 2 != 0: # 홀수인 경우..
문제 : https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net Code: import sys # 첫 번째 리스트를 입력으로 받습니다. l = sys.stdin.readline() # 첫 번째 리스트의 요소들을 읽어와서 정수로 변환하고, 중복을 제거하여 집합으로 만듭니다. l1 = set(map(int, sys.stdin.readline().split())) # 두 번째 리스트의 요소들을 읽어와서 정수로 변환하고, 중복을 제거하여 집합으로 만듭니..
문제 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net Code : import sys import string # 입력으로부터 단어의 개수를 받아옵니다. n = int(sys.stdin.readline()) # 알파벳 리스트를 생성합니다. # string 모듈의 ascii_lowercase 상수를 사용하여 영어 소문자들을 포함하는 문자열을 가져옵니다. # alphabet_list에는 소문자 알파벳들이 포함됩니..
23학번이수현
'백준' 태그의 글 목록