백준 11283 자바
한글 2
문제
한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다.
초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있고, 중성은 ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ로 총 21개, 종성은 없음, ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 28개가 있다.
첫 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 없음을 합친 "가"가 되고, 두 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 ㄱ을 합친 "각"이 된다. 마지막 글자는 초성에서 ㅎ, 중성에서 ㅣ, 종성에서 ㅎ를 합친 "힣"이 된다.
초성과 중성, 그리고 종성을 합쳐서 만들 수 있는 글자의 개수는 총 192128 = 11,172개가 된다.
한글이 주어졌을 때, 몇 번째 글자인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 글자 하나가 주어진다. 주어지는 글자는 UTF-8로 인코딩 되어 있는 한글이며, 문제 설명에 나온 방법으로 만들 수 있다.
출력
입력으로 주어진 글자가 몇 번째인지 출력한다.
예제 입력 1
가
예제 출력 1
1
예제 입력 2
힣
예제 출력 2
11172
예제 입력 3
백
예제 출력 3
4146
예제 입력 4
준
예제 출력 4
7425
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
1 초 | 256 MB | 3890 | 2894 | 2715 | 79.062% |
코드
package Day0923;
import java.util.Scanner;
public class B11283 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char hangul = sc.nextLine().charAt(0);
sc.close();
System.out.println((int) hangul - 44031); // '가'라고 찍으면 44032가 나옴. '가'가 1이되려면 44031 빼주기
}
}
'알고리즘 공부 > 백준 문제풀이' 카테고리의 다른 글
[백준]13866 : 팀 나누기(JAVA) (0) | 2022.10.05 |
---|---|
[백준]15873:공백 없는 A+B(JAVA) (0) | 2022.10.05 |
[백준]14924 : 폰 노이만과 파리(JAVA) (0) | 2022.10.05 |
[백준] 19944 : 뉴비의 기준은 뭘까? (JAVA) (0) | 2022.10.05 |
[백준] 14581 : 팬들에게 둘러싸인 홍준(JAVA) (0) | 2022.10.05 |