728x90
https://www.acmicpc.net/problem/2866
728x90
메모리: 305,588 KB , 시간: 1,748 ms
사용 알고리즘: 자료 구조, 해시를 사용한 집합과 맵, 문자열
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int R = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
char[][] table = new char[R][C];
for (int i = 0; i < R; i++) {
table[i] = br.readLine().toCharArray();
}
// 열 별로 StringBuilder에 담아 문자열을 만들어줌
StringBuilder[] arr = new StringBuilder[C];
for (int i = 0; i < C; i++) {
arr[i] = new StringBuilder();
for (int j = 0; j < R; j++) {
arr[i].append(table[j][i]);
}
}
int count = 0;
HashSet<String> hs;
boolean flag;
while(true) {
hs = new HashSet<>();
flag = false;
for (int i = 0; i < C; i++) {
arr[i].delete(0, 1);
if(hs.contains(arr[i].toString())) {
flag = true;
break;
}
else hs.add(arr[i].toString());
}
if(flag) break;
count++;
}
System.out.println(count);
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 5875] 오타 (java) (1) | 2024.02.28 |
---|---|
[백준, BOJ 13418] 학교 탐방하기 (java) (0) | 2024.02.27 |
[백준, BOJ 1595] 북쪽나라의 도로 (java) (1) | 2024.02.27 |
[백준, BOJ 14676] 영우는 사기꾼? (java) (0) | 2024.02.27 |
[백준, BOJ 2660] 회장뽑기 (java) (0) | 2024.02.25 |