https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
문자열 챕터 맨 마지막에 해결한 백준 1316번 그룹 단어 체커 문제 같은경우에는 아스키코드를 이용해서 해결하면 되는 문제였다. 문자열 끗.
문제 및 입출력
코드
import java.util.Scanner;
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
int result = t; // 결과
boolean[] chk = new boolean[26]; // 알파벳별 체크여부
for(int i=0; i<t; i++)
{
String input = sc.next();
// 문자열 길이가 1이면 묻지도 따지지도 않고 조건만족
if(input.length()==1)
{
continue;
}
else
{
// 조건체크 전 초기값 설정
Arrays.fill(chk, false);
char lastChar = '0';
for(int j=0; j<input.length(); j++)
{
// 문자열의 체크할 문자값 설정
char now = input.charAt(j);
int index = now - 97;
// 체크할 문자값(input.charAt(j))과 현재 문자값(lastChar) 비교
if(lastChar!=now)
{
// 다를 때는 무조건 현재 문자값을 업데이트
lastChar = now;
// 문자값이 다르면서 이미 체크한 문자가 있으면 조건만족을 실패한 문자열
if(chk[index])
{
result--;
break;
}
// 이미 체크한 문자가 없으면 체크표시
else
{
chk[index] = true;
}
}
}
}
}
System.out.println(result);
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 2839 설탕 배달 (0) | 2021.09.09 |
---|---|
[백준] 2775 부녀회장이 될거야 (0) | 2021.09.08 |
[백준] 4673 셀프넘버 (0) | 2021.09.07 |
[백준] 5622 다이얼 (0) | 2021.09.06 |
[백준] 2908 상수 (0) | 2021.09.06 |
댓글