```
백준 14492번 부울 행렬의 부울곱 JAVA 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 14492번 풀이
https://www.acmicpc.net/problem/14492
14492번: 부울행렬의 부울곱
문제를 출제하던 욱제는 갑자기 괴랄한 문제를 내고 싶어졌다. 불행하게도, 이번 대회에는 프로그래밍 뉴비들이 많기 때문에 그럴 수는 없었다. 하지만 욱제는 신입생들을 괴롭히고픈 욕망을
www.acmicpc.net
백준 14492번 부울행렬의 부울곱은
난이도 실버 등급의 문제로서
두 Bool 행렬을 곱해서 나온 Bool 행렬의 True 값을 더해서 출력하면 되는 문제입니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
두 Bool 행렬을 곱해서 곱한 행렬의 True 값을 더해 출력하였습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(br.readLine());
boolean[][] arr1 = initArr(n);
boolean[][] arr2 = initArr(n);
boolean[][] arr3 = boolArrMultiplication(n, arr1, arr2);
}
private static boolean[][] boolArrMultiplication(int arrSize, boolean[][] arr1, boolean[][] arr2) {
boolean[][] arr = new boolean[arrSize][arrSize];
int count = 0;
for (int i =0; i<arrSize;i++){
for (int j =0; j<arrSize;j++){
arr[i][j] = false;
for (int k =0; k<arrSize;k++){
if(arr1[i][k] == true && arr2[k][j] == true){
arr[i][j] = true;
count++;
k = arrSize;
}
}
}
}
System.out.println(count);
return arr;
}
static boolean[][] initArr(int arrSize) throws IOException {
boolean[][] arr = new boolean[arrSize][arrSize];
for (int i = 0; i < arrSize; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int j = 0;
while (st.hasMoreTokens()) {
if (st.nextToken().equals("0")) {
arr[i][j] = false;
} else {
arr[i][j] = true;
}
j++;
}
}
return arr;
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
'Java > Java 알고리즘' 카테고리의 다른 글
| 백준 9291번 스도쿠 채점 JAVA 구현해보기 (0) | 2022.02.04 |
|---|---|
| 백준 9076번 점수집계 JAVA 구현해보기 (0) | 2022.02.04 |
| 백준 9085번 더하기 JAVA 구현해보기 (0) | 2022.02.03 |
| 백준 11006번 남욱이의 닭장JAVA 구현해보기 (0) | 2022.02.03 |
| 백준 10569번 다면체 JAVA 구현해보기 (0) | 2022.02.03 |