문제 : boj6750
필요 알고리즘 개념
- 문자열, 구현
- 문자열 파싱이 필요한 구현 문제이다.
※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.
풀이
1. 입력으로 받은 문자열의 각 문자열이 I, O, S, H, Z, X, N 중 하나인지 판단해야 하므로, I, O, S, H, Z, X, N를 쉽게 사용할 수 있는 방식으로 코드에 넣어둔다. 내 경우엔 그냥 String으로 두었고, 배열로 둬도 된다.
2. 입력받은 문자열의 각 문자를 순회하면서, 한 문자라도 '1'의 문자중 없는 문자가 나온다면 바로 NO를 출력하고 프로그램을 종료해주면 된다.
3. 입력받은 문자열에 대해 전부 문제없이 돌았다면 YES를 출력해주면 된다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
private static final String TARGET_LETTERS = "IOSHZXN";
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
for (int i = 0; i < s.length(); i++) {
boolean chk = false;
for (int j = 0; j < TARGET_LETTERS.length(); j++) {
if (TARGET_LETTERS.charAt(j) == s.charAt(i)) {
chk = true;
break;
}
}
if (!chk) {
System.out.println("NO");
return;
}
}
System.out.println("YES");
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
[자바] 백준 23972 - 악마의 제안 (java) (0) | 2022.11.28 |
---|---|
[자바] 백준 6763 - Speed fines are not fine! (java) (0) | 2022.11.27 |
[자바] 백준 2162 - 선분 그룹 (java) (0) | 2022.11.26 |
[자바] 백준 4375 - 1 (java) (2) | 2022.11.26 |
[자바] 백준 12781 - PIZZA ALVOLOC (java) (0) | 2022.11.26 |
댓글