백준 10830 - 행렬 제곱(C++)
문제 크기가 N•N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하는 것이다. 입력 첫째 줄에 행렬의 크기 N과 B가 주어진다. (2 ≤ N ≤ 5, 1 ≤ B ≤ 100,000,000,000) 그 다음줄 부터 N개의 줄에 행렬의 각 원소가 주어진다. 예제 입력 2 5 1 2 3 4 예제 출력 69 558 337 406 문제 해결 어디서 힌트를 얻을 수 있을까? '제곱'이라는 키워드에 중점을 둬서 이 문제를 풀어야 한다. 거듭 제곱 문제를 풀 때 제곱의 수를 반으로 줄여서 곱하는 것은 똑같은 결과를 가져다 주는 것을 알 수 있다. N^B = N^(B/2) * N^(B/2) 이렇게 계속 반으로 줄이다 보면 더 이상 줄이지 못하는 기저 사례가 나오게 되고 처리해 주면 된다. 만약 홀수가..
알고리즘/문제
2023. 6. 10. 00:14