티스토리 뷰
https://www.acmicpc.net/problem/1316
이 문제는 주어진 모든 단어를 확인하면서 하나의 알파벳이 이어서 나오는 단어만을 확인하는 것입니다. 즉, 이전에 나온 알파벳이 이어나오지 않고 뒤에 다시 나타난다면 이것은 그룹 단어가 아닙니다.
1. 단어를 전달 받은 뒤, 각 알파벳을 비교합니다.
2. 지금 알파벳과 이전 알파벳을 비교하여 같지 않은 경우,
2-1. 이전 알파벳을 알파벳 셋(Set)에 저장합니다.
2-1. 지금 확인하고 있는 알파벳이 셋에 저장되어 있는지 확인하여 저장되어 있다면 바로 return false 합니다.
3. 이전 알파벳을 지금 알파벳으로 변경합니다.
4. 단어의 모든 알파벳을 확인한 경우 return true 합니다.
5. 위에서 나온 결과에 따라 true인 경우 그룹 단어 수를 증가시킵니다.
6. 테스트 케이스의 단어만큼 1 ~5 과정을 반복한 뒤, 최종적으로 그룹 단어 수를 출력합니다.
자바 코드는 다음과 같습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException {
int answer = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int tc = Integer.parseInt(br.readLine());
for (int i = 0; i < tc; i++) {
String word = br.readLine();
if (checkGroupWord(word)) {
answer++;
}
}
System.out.println(answer);
}
private static boolean checkGroupWord(String word) {
Set<Character> alphabetSet = new HashSet<>();
char before = ' ';
for (char w : word.toCharArray()) {
if (before != ' ' && before != w) {
alphabetSet.add(before);
if (alphabetSet.contains(w)) {
return false;
}
}
before = w;
}
return true;
}
}
'알고리즘' 카테고리의 다른 글
[백준알고리즘] 2292 - 벌집 (0) | 2021.05.24 |
---|---|
[백준알고리즘] 1712 - 손익분기점 (0) | 2021.05.21 |
[백준알고리즘] 2941 - 크로아티아 알파벳 (0) | 2021.05.18 |
[백준알고리즘] 5622 - 다이얼 (0) | 2021.05.17 |
[백준알고리즘] 2908 - 상수 (0) | 2021.05.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CodePipeline
- Combination
- CodeDeploy
- 에라토스테네스의 체
- Dynamic Programming
- 소수
- 조합
- SWIFT
- BFS
- EC2
- ionic
- sort
- string
- array
- ECR
- AWS
- 수학
- 순열
- cloudfront
- java
- 프로그래머스
- search
- CodeCommit
- spring
- Algorithm
- DFS
- permutation
- Baekjoon
- map
- programmers
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함