[ 문제 ]
한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다.
초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있고, 중성은 ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ로 총 21개, 종성은 없음, ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 28개가 있다.
첫 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 없음을 합친 "가"가 되고, 두 번째 글자는 초성에서 ㄱ, 중성에서 ㅏ, 종성에서 ㄱ을 합친 "각"이 된다. 마지막 글자는 초성에서 ㅎ, 중성에서 ㅣ, 종성에서 ㅎ를 합친 "힣"이 된다.
초성과 중성, 그리고 종성을 합쳐서 만들 수 있는 글자의 개수는 총 19*21*28 = 11,172개가 된다.
한글이 주어졌을 때, 몇 번째 글자인지 구하는 프로그램을 작성하시오.
[ 코드 ]
string input = Console.ReadLine();
char c = input[0];
int n = c;
n -= 44031;
Console.Write(n);
[ 풀이 ]
가의 아스키코드는 44032이기때문에 -44031을 해준다. 그럼 가를 입력했을때 1이, 힣을 입력했을때 11172가 출력된다.
반대 상황인 숫자를 입력했을때 한글로 출력하는 코드.. 거의 같다고 보면된다.
https://milkyquartz.tistory.com/48
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/11283
'Language > C#' 카테고리의 다른 글
[C#] 백준 1010번 다리 놓기 (0) | 2024.02.08 |
---|---|
[C#] 백준 2903번 중앙 이동 알고리즘 (0) | 2024.02.08 |
[C#] 백준 11005번 진법 변환 2 (0) | 2024.02.07 |
[C#] 백준 1978번 소수 찾기 (0) | 2024.02.07 |
[C#] 백준 1676번 팩토리얼 0의 개수 (0) | 2024.02.06 |