https://www.acmicpc.net/problem/1235
1235번: 학생 번호
첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부
www.acmicpc.net
저는 구현을 통해 문제를 해결하였습니다.
각각의 길이에 대해 set을 통해 구분할 수 있는지를 판단하여 답을 구하였습니다.
package BOJ.etc;
import java.awt.print.Pageable;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class BOJ_1235 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] numbers = new String[n];
for(int i = 0 ; i < n ; i++){
numbers[i] = br.readLine();
}
int answer = numbers[0].length();
for(int i = 1 ; i < numbers[0].length() ; i++){
if(check(numbers,i)){
answer = i;
break;
}
}
System.out.println(answer);
}
private static boolean check(String[] numbers, int num) {
Set<String> set = new HashSet<>();
int size = numbers[0].length();
for(String str : numbers) {
String temp = str.substring(size - num,size);
if(set.contains(temp)){
return false;
}
set.add(temp);
}
return true;
}
}
'알고리즘' 카테고리의 다른 글
백준 1461번 도서관 (JAVA) (0) | 2023.08.21 |
---|---|
백준 15815번 천재 수학자 성필 (JAVA) (0) | 2023.08.20 |
프로그래머스 다리를 지나는 트럭 (JAVA) (0) | 2023.08.18 |
프로그래머스 단속카메라 (JAVA) (0) | 2023.08.17 |
프로그래머스 양과 늑대 (JAVA) (0) | 2023.08.16 |