https://www.acmicpc.net/problem/11049
이 문제를 풀다가 또!! 무한루프 돌아서 기록을 남긴다.
바로 찾는 실수더라도 같은 실수를 반복하지 않기위해 남겨본다.
이 문제는 백준 11066 파일합치기 문제를 풀었다면, 행렬의 곱셈을 이해하면 풀 수 있는 문제이다.
일단! 통과한 정답은 아래와 같다. (맥에서는 eclipse 사용, 윈도우에서는 intellij 사용중 - 아래는 intellij)
순서대로 곱하는 행렬에서, 총 행렬을 곱한 연산의 수 합을 구하는 과정이다.
행렬의 순서를 바꾸지 않고 연속된 행렬부터 곱할 수 있는데,
그 값들을 int[][] d 값에 저장하고, 재귀로 값을 호출하면서 구한다.
행렬이 10 개 있다고 하면, 전체 행렬 개수 중에서 구하고자 하는 곱의 결과를 계산하는 과정에서,
for 루트 문을 돌려서 1 x (2~10) / (1x2) x (3~10) / (1x3) x (4~10) ... 이런씩으로 구할 때
16번째 줄의 i 는 반드시 최고값보다 작아야 하는데!! i<y가 아닌 i<=y 로 넣어주는 실수를 했다.
이전에는 중간에 return 하지 않아서 무한루트가 발생한적이 있었고,
이번에는 범위를 잘못 지정해줘서 발생했다.
실수를 잘 기록하고 같은 실수는 반복하지 않도록 줄여야겠다.
[JAVA] 백준 1413번 박스 안의 열쇠 (0) | 2022.04.08 |
---|---|
[JAVA] 백준 10564번 팔굽혀펴기 (0) | 2022.04.07 |
[JAVA] 백준 3012번 올바른 괄호 문자열 (0) | 2022.04.06 |
[JAVA] 백준 14238번 출근 기록 (0) | 2022.03.31 |
[JAVA] 백준 10422번 괄호 (0) | 2022.03.28 |