반응형
🔺 문제
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
🔺 코드
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
31
32
33
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int cnt = 0;
while(N --> 0) {
Set<Character> set = new HashSet<>(); // Set은 중복 제거함
boolean isGroup = true;
char[] ch = br.readLine().toCharArray();
set.add(ch[0]);
for(int i = 1 ; i < ch.length ; i++) {
if(set.contains(ch[i]) && ch[i - 1] != ch[i]) {
isGroup = false;
}
else {
set.add(ch[i]);
}
}
if(isGroup) cnt++;
}
System.out.println(cnt);
}
}
|
cs |
✅ 해결 아이디어
✔ Set 사용
- Set은 알아서 중복 제거
- Set이 이미 해당 문자를 갖고 있고, 이전 문자와 연속되지 않는다면 그룹 단어가 아님
- 이전에 사용한 적 없다면, Set에 값 추가
🔺 다른 풀이들
- 오 이렇게도 풀 수 있구나.. 알파벳 크기의 boolean 배열을 만들어 푸셨다.
[JAVA] 백준 1316번 - 그룹 단어 체커
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int cnt = 0; // 그룹 단어 개수 for (int i = 0; i < N; i++) { String S = sc.next(); boolean check[] = new boolea
cocoon1787.tistory.com
로그인
www.acmicpc.net
- str.indexOf(str.charAt(j - 1)) > str.indexOf(str.charAt(j))
이면 그룹 단어 개수 감소시키는 식으로 푸심
로그인
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int count = N;
for(int i = 0 ; i < N ; i++){
String str = scan.next();
for(int j = 1 ; j < str.length() ; j++){
if(str.indexOf(str.charAt(j-1)) > str.indexOf(str.charAt(j))){
count--;
break;
}
}
}
System.out.println(count);
}
}
|
cs |
💬 느낀 점
풀면서도... 맞으려나... 싶었다ㅋㅋ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 5585번: 거스름돈 (0) | 2023.07.07 |
---|---|
[백준/JAVA] 1065번: 한수 (0) | 2023.07.06 |
[백준/JAVA] 4673번: 셀프 넘버 (0) | 2023.07.04 |
[백준/JAVA] 1476번: 날짜 계산 (0) | 2023.07.04 |
[백준/JAVA] 17427번: 약수의 합 2 (0) | 2023.07.03 |