알고리즘 연습
[1316번] 그룹 단어 체커 - Java
밀깜
2021. 11. 9. 21:23
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
1. 배운점
- 반복문의 실행 횟수를 정할 때 부등호와 범위를 꼼꼼히 확인하면 불필요한 계산을 줄일 수 있다.
2. 개선할 점
- 좀 더 효율적인 비교 방법 또는 다른 접근법을 공부할 것
3. 궁금한 점
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// import java.util.Scanner
Scanner scan = new Scanner(System.in);
// 단어 개수 입력받기
int wordNum = Integer.parseInt(scan.nextLine());
// 그룹단어 개수 출력하기
int count = 0;
for(int i = 0; i < wordNum; i ++) {
String word = scan.nextLine();
if(isGroupWord(word)) {
count++;
}
}
System.out.println(count);
}
// 그룹단어인지 확인하는 메서드
private static boolean isGroupWord(String word) {
// 기본값은 true로 설정한다
boolean test = true;
// 매개변수로 받은 값을 쪼개서 배열에 담는다
String [] arr = word.split("");
for (int i = 1; i < arr.length-1; i++) {
// i+1번째 있는 값이 i번째 값과 다를때
if (!arr[i+1].equals(arr[i])) {
// i+1 번째 값이 0 ~ i번째 값과 같은 경우 false를 반환한다.
for(int j = 0; j < i; j++) {
if(arr[i+1].equals(arr[j])) {
test = false;
break;
}
}
}
}
return test;
}
}