백준 좋은 자동차 번호판

KIMYEONGJUN·2024년 10월 10일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 번호판의 수 N (1 ≤ N ≤ 100)이 주어진다.
다음 N개 줄에는 자동차 번호판이 LLL-DDDD 형식으로 주어진다.
각각의 자동차 번호판에 대해서,
좋은 번호판이면 "nice"를,
아니면 "not nice"를 출력한다.

내가 이 문제를 보고 생각해본 부분

사용자가 입력한 번호판의 갯수 N을 읽는다.
각 번호판에 대해 문자 부분과 숫자 부분을 나누고,
두 부분의 가치를 계산해준다.
두 가치의 차이가 100 이하인지 판단하여 결과를 출력한다.
이 코드의 목적은 주어진 번호판이 nice인지 not nice인지 판단하는 것이다.

코드로 구현

package baekjoon.baekjoon_23;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 1871번 문제
public class Main802 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());  // 번호판의 수

        for(int i = 0; i < N; i++) {
            String plate = br.readLine();
            System.out.println(isNicePlate(plate) ? "nice" : "not nice");
        }
        br.close();
    }

    private static boolean isNicePlate(String plate) {
        // 번호판을 '-'로 나누기
        String[] parts = plate.split("-");
        String letters = parts[0];
        String digits = parts[1];

        // 첫 번째 부분의 가치 계산
        int valueLetters = 0;
        for(int i = 0; i < letters.length(); i++) {
            valueLetters = valueLetters * 26 + (letters.charAt(i) - 'A');
        }

        // 두 번째 부분의 가치 계산
        int valueDigits = Integer.parseInt(digits);

        // 차이 계산
        return Math.abs(valueLetters - valueDigits) <= 100;
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글