/hacks/hanguldis.go
package main

import (
	"bufio"
	"fmt"
	"os"
)

var choseong = []rune("ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ")
var jungseong = []rune("ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ")
var jongseong = []rune(" ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ")

func main() {
	scanner := bufio.NewScanner(bufio.NewReader(os.Stdin))
	scanner.Split(bufio.ScanRunes)
	for scanner.Scan() {
		r := []rune(scanner.Text())[0]
		if r < 0xAC00 || r > 0xD7A3 {
			fmt.Printf("%c", r)
			continue
		}
		cho := choseong[(r-0xAC00)/(28*21)]
		jung := jungseong[(r-0xAC00)/28%21]
		jong := jongseong[(r-0xAC00)%28]
		if jong == ' ' {
			fmt.Printf("%c%c", cho, jung)
		} else {
			fmt.Printf("%c%c%c", cho, jung, jong)
		}
	}
	if err := scanner.Err(); err != nil {
		fmt.Fprintln(os.Stderr, err)
	}
}