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 | 29 | 30 | 31 |
Tags
- Router
- Spring Boot
- AWS
- ELB
- sort
- 정렬
- 브루트포스
- 완전탐색
- url parsing
- 토이프로젝트
- 백준알고리즘
- mysql
- 다익스트라 알고리즘
- 스터디
- 라우터
- 탐욕법
- BFS
- 동적프로그래밍
- 백준
- java
- nodejs
- 자료구조
- 리액트
- EventListener
- 서버구축
- 알고리즘
- EC2
- react
- Algorithm
- spring
Archives
- Today
- Total
공부하는 블로그
Baekjoon | Q.1316 - 그룹 단어 체커 본문
단어에 존재하는 모든 문자에 대하여 각 문자가 연속해서 나타나는 그룹단어를 판별하는 문제이다.
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