본문 바로가기
PS/BOJ

[자바] 백준 6750 - Rotating letters (java)

by Nahwasa 2022. 11. 26.

 문제 : 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();
    }
}

댓글