https://www.acmicpc.net/problem/2160


◎알고리즘 [풀이과정]
개인적으로 문자보다 정수가 뭔가 작업하기 편해서(. 이면 0), (X면 1)을 넣는 식으로 값을 넣고 문제를 풀었다.
문제를 풀면서 처음으로 4중 for문을 사용하였다.
그대로 사용하면 보기 너무 힘들꺼 같아서 이미지를 비교하는 코드는 함수로 처리하여 따로 분류하였다.
import java.util.Scanner;
public class st_2160 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int [][]img = new int [num*5][7];
int result1 = 0;
int result2 = 0;
int result_count = 36;
for(int i = 0;i<num*5;i++) {
String a = sc.next();
for(int j = 0;j<7;j++) {
String word[] = a.split("");
if(word[j].equals(".")) {
img[i][j] = 0;
}
else {
img[i][j] = 1;
}
}
}
for(int i = 0;i<num-1;i++) {
for(int j = i+1;j<num;j++) {
int count = find_number(img,i,j);
if(result_count>count) {
result_count = count;
result1 = i+1;
result2 = j+1;
}
}
}
System.out.print(result1+" "+result2);
}
static int find_number(int[][] img,int num1, int num2) {
int count = 0;
for(int i = 0;i<5;i++) {
for(int j = 0;j<7;j++) {
if(img[i+(num1*5)][j] != img[i+(num2*5)][j]) {
count++;
}
}
}
return count;
}
}'알고리즘 > 랜덤 마라톤' 카테고리의 다른 글
| [백준] 22938번: 백발백준하는 명사수 - JAVA[랜덤 마라톤] (2) | 2024.08.28 |
|---|---|
| [백준] 23253번: 자료구조는 정말 최고야 - JAVA[랜덤 마라톤] (1) | 2024.08.27 |
| [백준] 4623번: Copier Reduction - JAVA[랜덤 마라톤] (0) | 2024.08.25 |
| [백준] 1871번: 좋은 자동차 번호판 - JAVA[랜덤 마라톤] (0) | 2024.08.24 |
| [백준] 6030번: Scavenger Hunt - JAVA[랜덤 마라톤] (0) | 2024.08.23 |