파이프, 밑줄, 공백으로 이루어진 3 x 4 격자가 주어졌을 때, 어떤 숫자가 표현된 것인지, 아니면 알아볼 수 없는 상태인지 판별해요.
먼저, 단순한 이진 폰트를 0 또는 1을 담은 문자열로 변환해요.
이진 폰트는 파이프와 밑줄을 사용하며, 높이 네 줄, 너비 세 칸이에요.
_ #
| | # zero.
|_| #
# the fourth row is always blank
"0"으로 변환돼요.
#
| # one.
| #
# (blank fourth row)
"1"로 변환돼요.
입력의 크기는 맞지만 알아볼 수 없다면, 프로그램은 '?'를 반환해야 해요.
입력의 크기가 맞지 않으면, 프로그램은 오류를 반환해야 해요.
여러 문자로 이루어진 이진 문자열을 인식하도록 프로그램을 고쳐요. 알아볼 수 없는 숫자는 ?로 바꿔요.
0부터 9까지의 모든 숫자를, 하나씩일 때도, 더 큰 문자열의 일부일 때도 인식하도록 프로그램을 고쳐요.
_
_|
|_
"2"로 변환돼요.
_ _ _ _ _ _ _ _ #
| _| _||_||_ |_ ||_||_|| | # decimal numbers.
||_ _| | _||_| ||_| _||_| #
# fourth line is always blank
"1234567890"으로 변환돼요.
여러 숫자를 한 줄에 하나씩 처리하도록 프로그램을 고쳐요. 여러 줄을 변환할 때는 줄들을 쉼표로 이어요.
_ _
| _| _|
||_ _|
_ _
|_||_ |_
| _||_|
_ _ _
||_||_|
||_| _|
"123,456,789"로 변환돼요.
Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.