• 문제 링크
1235번: 학생 번호
첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부
www.acmicpc.net
• 풀이 과정
각 학생의 번호를 뒤에서 1자리 범위로 잘라내어 set에 담는다.
만약 set 에 현재 잘라낸 번호가 존재하지 않는다면 set에 담고,
중복되는 번호가 있다면 반복문을 다시 수행하며 잘라낼 범위를 1 증가시킨다.
위의 과정을 거쳐 중복되는 번호없이 입력받은 번호를 모두 set에 담는다면 현재 잘라낸 범위 k를 출력한다.
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
String[] arr = new String[n];
for (int i = 0; i < n; i++)
arr[i] = br.readLine();
Set<String> set = new HashSet<>();
int len = arr[0].length(), k = 1;
for (int i = 0; i < n; i++) {
String sub = arr[i].substring(len - k);
if (!set.contains(sub))
set.add(sub);
else {
k++;
i = -1;
set.clear();
}
}
bw.write(String.valueOf(k));
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 4158 CD - Data Structure / Java (0) | 2023.03.19 |
---|---|
[백준] 10546 배부른 마라토너 - Data Structure / Java (0) | 2023.03.18 |
[백준] 17608 막대기 - Data Structure / Java (0) | 2023.03.16 |
[백준] 12605 단어순서 뒤집기 - Data Structure / Java (0) | 2023.03.15 |
[백준] 4889 안정적인 문자열 - Data Structure / Java (0) | 2023.03.14 |
댓글