白駿1316組合せ単語checker
https://www.acmicpc.net/problem/1316
ポイントは、文字が連続しているかどうかを確認することです.
生成check()メソッド組の単語 であるかどうかをチェックする.文字に基づいてcheck配列を宣言し、変数を宣言して前の文字と現在の文字を比較します. の前の文字が現在の文字と異なる場合、 文字が初めて現れるとcheck配列の値trueに変換され、そうでない場合false に戻る
前の文字が現在の文字と同じである場合、continue check()メソッドを呼び出し、trueの場合にのみcountを追加して結果値 を出力する.
トラブルシューティング
ポイントは、文字が連続しているかどうかを確認することです.
生成check()メソッド
前の文字が現在の文字と同じである場合、continue
ソースコード
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class b1316 {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
int count = 0; // 그룹 단어 개수 출력 변수
int n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++) { // 그룹 단어 체커 함수 n번 실행
if (check() == true) { // 그룹 단어일 경우 카운트 변수 증가
count++;
}
}
System.out.println(count);
}
// 그룹 단어 체크할 함수
// 그룹 단어인지 아닌지 파악 -> return boolean
public static boolean check() throws IOException {
boolean[] check = new boolean[26]; // 알파벳 개수만큼 배열 생성, 그룹 단어 체크 배열
int prev = 0; // 이전 문자와 연속 여부 파악 변수
String s = br.readLine();
for (int i = 0; i < s.length(); i++) {
int now = s.charAt(i); // 현재 문자
// 이전 문자와 i번째 문자가 같지 않다면?
if (prev != now) {
// 해당 문자가 처음 나오는 경우
if (check[now - 'a'] == false) {
check[now - 'a'] = true; // true로 변경
prev = now; // 현재 문자는 이전 문자로 변경, 다음 들어올 문자가 현재 문자로 변경
}
// 해당 문자가 이미 나온 적 있는 경우 (그룹 단어가 아님)
else {
return false;
}
} else { // 앞선 문자와 i번째 문자가 같다면? (연속된 문자)
continue;
}
}
return true;
}
}
Reference
この問題について(白駿1316組合せ単語checker), 我々は、より多くの情報をここで見つけました https://velog.io/@im_lily/백준-1316-그룹단어체커テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol