728x90
반응형
문제
정답 풀이
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 count = 0; // 그룹 단어 개수
int[] check = new int[26]; // 알파벳 26개 배열
boolean bad = true; // 그룹 단어 인지 판별
for(int i = 0; i < N; i++){
String str = br.readLine(); // 단어 읽음
for(int j = 0; j < str.length(); j++){
int now = str.charAt(j); // 현재 단어 저장
if(j != 0){ // 첫 글자가 아니면
if(now != str.charAt(j-1)){ // 앞 글자랑 다르면
if(check[now-'a'] == 0){ // 처음 나온 글자면
check[now-'a'] = 1; // 체크
}
else{
// 같은 글자가 연달아 나온 것도 아니고
// 처음 나온 글자도 아니라면
// 그룹 단어가 아니기에 false
bad = false;
}
}
}
else{ // 첫 글자는 무조건 저장
check[now-'a'] = 1;
}
}
// 그룹단어이면 count++
if(bad){
count++;
}
// 그룹단어가 아니라면
// 배열과 boolean 변수 초기화
else{
bad = true;
}
check = new int[26];
}
System.out.print(count);
br.close();
}
}
- 메모리 14248KB
- 시간 124ms
이번 문제도 어려워서 이틀동안 머리 싸맸어요..
실버로 올라가니까 쉽게 풀리지 않네요ㅠㅠ
문제를 보고 체크해야할 조건들을 생각해서 하나하나 if문으로 체크해줬어요.
주석을 달아뒀으니 보시고 질문은 댓 달아주세요 :)
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 2738번 행렬 덧셈 (0) | 2023.05.13 |
---|---|
[백준/Java] 25206번 너의 평점은 (0) | 2023.05.13 |
[백준/Java] 2941번 크로아티아 알파벳 (0) | 2023.05.11 |
[백준/Java] 4344번 평균은 넘겠지 (0) | 2023.05.11 |
[백준/Java] 1157번 단어 공부 (0) | 2023.05.09 |