소개
DVORAK 키보드 레이아웃 과 다소 비슷 하지만 훨씬 어렵습니다.
먼저 한국어 키보드에 대해 이야기합시다. Wikipedia 에서 볼 수 있듯이 한국어 및 영어 키 세트간에 변경하는 Kor / Eng 키가 있습니다.
한국인은 때때로 틀린 유형 : 쿼티 키보드에서 한국어로 또는 2 세트 키보드에서 영어로 쓰려고합니다.
따라서 문제는 다음과 같습니다. 두 세트 키보드로 한국어 문자를 입력하면 쿼티 키보드로 입력 한 알파벳 문자로 변환하십시오. 쿼티로 입력 된 알파벳 문자가 있으면 2 세트 키보드로 변경하십시오.
2 세트 키보드
다음은 2 세트 키보드 레이아웃입니다.
ㅂㅈㄷㄱㅅㅛㅕㅑㅐㅔ
ㅁㄴㅇㄹㅎㅗㅓㅏㅣ
ㅋㅌㅊㅍㅠㅜㅡ
그리고 shift 키로 :
ㅃㅉㄸㄲㅆㅛㅕㅑㅒㅖ
맨 위 줄만 바뀌고 다른 줄은 바뀌지 않습니다.
한글 정보
여기서 끝났다면 쉬울 수 있지만 쉽지 않습니다. 입력 할 때
dkssud, tprP!
출력은 다음과 같이 표시되지 않습니다.
ㅇㅏㄴㄴㅕㅇ, ㅅㅔㄱㅖ!
그러나 이런 식으로 :
안녕, 세계!(means Hello, World!)
그리고 일을 훨씬 어렵게 만듭니다.
한국어 문자는 '조성 (자음)', '정성 (음량)', '종성 (음절 끝의 자음 : 비워 둘 수 있음)'의 세 부분으로 구분되며 구분해야합니다.
다행히도 그렇게 할 수있는 방법이 있습니다.
분리하는 방법
초성 19 개, 중성 21 개, 종성 28 개 (공백 포함)가 있으며 0xAC00은 한자의 첫 문자 인 '가'입니다. 이를 사용하여 한자를 세 부분으로 나눌 수 있습니다. 다음은 2 세트 키보드에서 각각의 순서와 위치입니다.
choseong 주문 :
ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ
r R s e E f a q Q t T d w W c z x v g
중성 순서 :
ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ
k o i O j p u P h hk ho hl y n nj np nl b m ml l
종성 질서 :
()ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ
()r R rt s sw sg e f fr fa fq ft fx fv fg a q qt t T d w c z x v g
하자 말은 (unicode value of some character) - 0xAC00
있다 Korean_code
, 그리고 초성, Jungseong의 인덱스, Jongseong는 Cho
, Jung
,Jong
.
그런 다음 Korean_code
입니다(Cho * 21 * 28) + Jung * 28 + Jong
다음은 귀하의 편의를 위해 한글을이 한국어 웹 사이트와 구분하는 자바 스크립트 코드입니다 .
var rCho = [ "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ" ];
var rJung =[ "ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ" ];
var rJong = [ "", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ", "ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ","ㄿ", "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ" ];
var cho, jung, jong;
var sTest = "탱";
var nTmp = sTest.charCodeAt(0) - 0xAC00;
jong = nTmp % 28; // Jeongseong
jung = ((nTmp - jong) / 28 ) % 21 // Jungseong
cho = ( ( (nTmp - jong) / 28 ) - jung ) / 21 // Choseong
alert("Choseong:" + rCho[cho] + "\n" + "Jungseong:" + rJung[jung] + "\n" + "Jongseong:" + rJong[jong]);
조립할 때
- 그 주
ㅘ
,ㅙ
,ㅚ
,ㅝ
,ㅞ
,ㅟ
,ㅢ
기타 jungseongs의 조합입니다.
ㅗ+ㅏ=ㅘ, ㅗ+ㅐ=ㅙ, ㅗ+ㅣ=ㅚ, ㅜ+ㅓ=ㅝ, ㅜ+ㅔ=ㅞ, ㅜ+ㅣ=ㅟ, ㅡ+ㅣ=ㅢ
- 초성이 필요합니다. 만약 수단, 즉
frk
주어지고있는ㄹㄱㅏ
, 두 개의 방식으로 변경할 수있다 :ㄺㅏ
및ㄹ가
. 그런 다음 선택한 방식으로 변환해야합니다. 경우jjjrjr
주어진되는ㅓㅓㅓㄱㅓㄱ
선도적 인ㅓ
들 초성 할 수 있습니다 아무것도하지 않지만, 네 번째ㅓ
가ㄱ
가로 바뀌도록, 즉 초성 할 수 있습니다ㅓㅓㅓ걱
.
다른 예 : 세계
( tprP
). 섹ㅖ
( (ㅅㅔㄱ)(ㅖ)
) (으 ) 로 변경할 수 있지만 chooseong이 필요하기 때문에 세계
( (ㅅㅔ)(ㄱㅖ)
) (으 ) 로 변경되었습니다.
예
입력 1
안녕하세요
출력 1
dkssudgktpdy
입력 2
input 2
출력 2
ㅑㅞㅕㅅ 2
입력 3
힘ㄴㄴ
출력 3
glass
입력 4
아희(Aheui) is esolang which you can program with pure Korean characters.
출력 4
dkgml(모뎌ㅑ) ㅑㄴ ㄷ내ㅣ뭏 조ㅑ초 ㅛㅐㅕ ㅊ무 ㅔ갷ㄱ므 쟈소 ㅔㅕㄱㄷ ㅏㅐㄱㄷ무 촘ㄱㅁㅊㅅㄷㄱㄴ.
입력 5
dkssud, tprP!
출력 5
안녕, 세계!
입력 6
ㅗ디ㅣㅐ, 째깅! Hello, World!
출력 6
hello, World! ㅗ디ㅣㅐ, 째깅!
가장 짧은 코드가 승리합니다. (바이트)
편의를위한 새로운 규칙
A
2 세트 키보드에 해당 문자 가없는 문자를 해제 할 수 있습니다 . 그래서 Aheui
에 Aㅗ뎌ㅑ
OK입니다. 변경할 경우에, Aheui
에 모뎌ㅑ
, 당신은 얻을 수 -5 점을, 당신은 5 바이트를 적립 할 수 있습니다.
당신은 (같은 두 jungseongs 분리 할 수 있습니다 ㅘ
에를 ㅗ+ㅏ
). , 또는 을 좋아 rhk
합니다 . 당신이 (처럼 결합하지만 만약 에 나 에게 ), 당신은 추가 -5 포인트를 적립 할 수 있습니다.고ㅏ
how
ㅗㅐㅈ
rhk
과
how
ㅙㅈ
fjfau
로 해석 될 수 있습니다 . 이 문제를 어떻게 해결합니까? 럶ㅕ
럴며
tprP
테스트 케이스 5 : 에이 변환 ㅅㅔㄱㅖ
, ㅅ
초성되고, ㅔ
jungseong이고 ㄱ
jongseong이다. 그래서이로 변환 should't 섷ㅖ
(같은 그룹화 (ㅅㅔㄱ)(ㅖ)
) 대신에 세계
(같은 그룹화 (ㅅㅔ)(ㄱㅖ)
)? 이전 주석에서는 입력하여 해석한다고 말하므로 ㅅㅔㄱ
로 변환 할 것으로 예상 됩니다 섷
. 아니면 한국어가 왼쪽에서 오른쪽 대신 오른쪽에서 왼쪽으로 입력됩니까?
l
후 누락 된 것 같습니다 .ml
ㅣ