백준 한글 2

KIMYEONGJUN·2025년 3월 28일
0
post-thumbnail

문제

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

첫째 줄에 글자 하나가 주어진다.
주어지는 글자는 UTF-8로 인코딩 되어 있는 한글이며, 문제 설명에 나온 방법으로 만들 수 있다.

입력으로 주어진 글자가 몇 번째인지 출력한다.

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

입력 처리: BufferedReader를 사용하여 한글 글자를 입력받는다.
유니코드 계산: 입력된 글자의 유니코드 값에서 '가'의 유니코드 값을 빼서 해당 글자의 인덱스를 계산한다.
초성, 중성, 종성 인덱스 계산: 각 글자의 초성, 중성, 종성 인덱스를 계산한다.
결과 계산: 전체 글자 수에 따라 몇 번째 글자인지를 계산한다.
출력: StringBuilder를 사용하여 결과를 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

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

// 백준 11283번 문제
public class Main974 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // 입력받는 글자
        String input = br.readLine();
        char ch = input.charAt(0);

        // 유니코드 값에서 '가'의 유니코드 값을 빼서 인덱스를 계산
        int unicode = ch - 0xAC00;

        // 초성, 중성, 종성의 개수
        int initialConsonantCount = 19;
        int medialVowelCount = 21;
        int finalConsonantCount = 28;

        // 초성과 중성의 인덱스 계산
        int initialConsonantIndex = unicode / (medialVowelCount * finalConsonantCount);
        int medialVowelIndex = (unicode % (medialVowelCount * finalConsonantCount)) / finalConsonantCount;
        int finalConsonantIndex = unicode % finalConsonantCount;

        // 몇 번째 글자인지 계산
        int index = (initialConsonantIndex * medialVowelCount * finalConsonantCount)
                + (medialVowelIndex * finalConsonantCount)
                + finalConsonantIndex + 1; // 1부터 시작하므로 +1

        // 결과 출력
        sb.append(index);
        System.out.println(sb.toString());
        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글

관련 채용 정보