BOJ 2

백준 6604번: Matrix Chain Multiplication

문제 [BOJ][C++] 백준 6604번: Matrix Chain Multiplication 문제는 링크를 클릭해서 볼 수 있다. 풀이 입력 및 저장 행렬의 개수 n을 입력 받고 이어서 n개의 행렬의 정보를 입력 받는다. 행렬의 정보는 행렬의 이름, 행의 개수, 열의 개수로 이루어져있다. 행과 열을 동시에 저장하기 위해 pair 자료형을 사용했고, 행렬의 이름으로 행렬의 정보를 접근하기 위해 unordered_map을 사용했다. unordered_map은 key의 hash 값으로 value에 접근할 수 있고 탐색 속도는 O(1)이다. 다음으로 예제 입력이 끝날 때까지 입력을 받기 위해 while (cin >> formula) 를 사용했다. string formula; while (cin >> formul..

[알고리즘] 2022.04.27

백준 1431번: 시리얼 번호

문제 [BOJ][C++] 백준 1920번: 수 찾기 문제는 링크를 클릭해서 볼 수 있다. 풀이 stl sort 함수에 compare 함수를 직접 정의해 시리얼 번호를 정렬했다. compare 함수에서 시리얼 번호를 정렬하는 기준은 크게 둘로 나누었다. a와 b의 길이가 다른 경우와 같은 경우. 첫 번째 a와 b의 길이가 다른 경우, a와 b의 길이를 .length()로 구한 뒤 두 길이의 비교값을 반환했다. 두 번째 a와 b의 길이가 같은 경우, get_integer_sum 함수로 a와 b의 자리수 합을 구했다. get_integer_sum 함수는 문자열에서 숫자만 골라내어 그 합을 구하는 함수이다. 구한 두 자리수의 합이 서로 다르다면 두 자리수의 합 비교값을 반환하고, 같다면 a, b 자체 비교값을 ..

[알고리즘] 2022.04.27