달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SQL고득점Kit
  • 문제풀이
  • BOJ algorithm
  • Scanner
  • 프로그래머스
  • java algorithm
  • BRONZE
  • Algorithm
  • BOJ
  • 혼공MySQL
  • 백준
  • Bronze III
  • SQL
  • programmers
  • 알고리즘
  • react
  • 백준알고리즘
  • select
  • 알고리즘풀이
  • Bronze V
  • 자바
  • HTML
  • 혼자공부하는SQL
  • 혼공SQL
  • Bronze IV
  • java
  • math
  • sql 문제풀이
  • 백준문제풀이
  • MySQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[백준] 한글 - 11282 Java[자바]
algorithm/백준

[백준] 한글 - 11282 Java[자바]

2023. 3. 17. 22:59


[Unrated] 한글 - 11282

문제 링크

 

11282번: 한글

한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있

www.acmicpc.net

성능 요약

메모리: 14284 KB, 시간: 124 ms

분류

구현

문제 설명

한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다.

초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있고, 중성은 ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ로 총 21개, 종성은 없음, ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 28개가 있다.

첫 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 없음을 합친 "가"가 되고, 두 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 ㄱ을 합친 "각"이 된다. 마지막 글자는 초성에서 ㅎ, 중성에서 ㅣ, 종성에서 ㅎ를 합친 "힣"이 된다.

초성과 중성, 그리고 종성을 합쳐서 만들 수 있는 글자의 개수는 총 19*21*28 = 11,172개가 된다.

입력으로 N이 주어졌을 때, N번째 글자를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 11,172)이 주어진다.

출력

첫째 줄에 N번째 글자를 출력한다. 문자열의 인코딩은 UTF-8을 사용해야 한다.

답 : Index에서 -1을 하여 인덱스를 맞춰주고 유니코드에 맞게 하여 해당 문자를 구해준다. 

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

public class Main {
        public static void main(String[] args) throws IOException {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                int N = Integer.parseInt(br.readLine());

                int CHO = 19;
                int JUNG = 21;
                int JONG = 28;

                int charIndex = N - 1; // 인덱스는 0부터 시작하므로 N에서 1을 뺌

                int jong = charIndex % JONG; // 종성 구하기
                charIndex /= JONG;

                int jung = charIndex % JUNG; // 중성 구하기
                charIndex /= JUNG;

                int cho = charIndex; // 초성 구하기

                char c = (char) ('가' + cho * 21 * 28 + jung * 28 + jong);
                System.out.println(c);
        }
}
저작자표시 비영리 변경금지 (새창열림)

'algorithm > 백준' 카테고리의 다른 글

[백준] 파일 옮기기 - 11943 Java[자바]  (0) 2023.03.19
[백준] 1998년생인 내가 태국에서는 2541년생?! - 18108 Java[자바]  (0) 2023.03.18
[백준] 나는 누구인가 - 15733 Java[자바]  (0) 2023.03.16
[백준] 서버 - 10409 Java[자바]  (0) 2023.03.15
백준 FBI - 2857 Java[자바]  (0) 2023.03.14
    'algorithm/백준' 카테고리의 다른 글
    • [백준] 파일 옮기기 - 11943 Java[자바]
    • [백준] 1998년생인 내가 태국에서는 2541년생?! - 18108 Java[자바]
    • [백준] 나는 누구인가 - 15733 Java[자바]
    • [백준] 서버 - 10409 Java[자바]
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바