Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 다익스트라 알고리즘
- 완전탐색
- 백준알고리즘
- 동적프로그래밍
- 리액트
- react
- Algorithm
- 알고리즘
- Router
- sort
- BFS
- 토이프로젝트
- 백준
- 정렬
- spring
- 라우터
- url parsing
- EventListener
- AWS
- 스터디
- 브루트포스
- 탐욕법
- java
- 서버구축
- ELB
- nodejs
- mysql
- EC2
- Spring Boot
- 자료구조
Archives
- Today
- Total
공부하는 블로그
Baekjoon | Q.1316 - 그룹 단어 체커 본문
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
단어에 존재하는 모든 문자에 대하여 각 문자가 연속해서 나타나는 그룹단어를 판별하는 문제이다.
import java.util.Scanner;
public class Main {
static boolean isGroupword(String str) {
int cursor = 0;
int lastIndex = 0;
char c;
while(cursor != str.length()) {
c = str.charAt(cursor);
lastIndex = str.lastIndexOf(c);
for (int i = cursor + 1; i <= lastIndex; i++) {
if(c != str.charAt(i)) {
return false;
}
}
cursor = lastIndex + 1;
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int tc = sc.nextInt();
int count = 0;
for (int i = 0; i < tc; i++) {
String str = sc.next();
if(isGroupword(str)) count++;
}
System.out.println(count);
}
}
문자열의 문자 하나를 charAt()으로 뽑아내어 그 문자의 마지막 인덱스를 찾았다. 그 후 마지막 인덱스까지의 각각의 문자를 추출해낸 문자와 차례차례 비교하여 다른 것이 있다면 연속된 문자열이 아니기 때문에 그룹단어가 아니라고 판단하였다. 만약 다른것이 없는 연속된 문자열일 경우 다시 커서(cursor)를 마지막으로 검사한 인덱스 앞으로 옮겨 위의 과정을 반복해준다.
처음에 sc.nextLine()으로 제출하니 틀리고 sc.next()로 다시 제출하니까 정답처리되었다. nextLine()의 경우 테스트케이스로 입력받은 숫자를 그룹단어인지 판별하는 테스트케이스로 인식했다. 왜그러는지는 잘 모르겠다..
'알고리즘 공부' 카테고리의 다른 글
Baekjoon | Q.2869 - 달팽이는 올라가고 싶다 (0) | 2019.12.27 |
---|---|
Baekjoon | Q.10250 - ACM 호텔 (0) | 2019.12.26 |
Baekjoon | Q.5622 - 다이얼 (0) | 2019.12.23 |
Baekjoon | Q.1065 - 한수 (0) | 2019.12.22 |
Baekjoon | Q.15596 - 정수 N개의 합 (0) | 2019.12.22 |
Comments