OCR 숫자

OCR 숫자

어려움

소개

절친한 친구 Marta는 최근 지역 역사 박물관의 소장품을 다루는 꿈같은 일자리를 구했어요. 프로그래밍에 관심이 많다는 걸 아는 Marta는, 컴퓨터 역사 전시회를 준비하다 직장에서 생긴 문제를 털어놓아요. 지역 대학의 수학과에서 역사적인 출력물이 담긴 상자 여러 개를 기증했지만, 문서 상태가 좋지 않아 텍스트를 디지털화하기로 결정했대요. 그런데 대학의 오래된 프린터는 텍스트를 표현하는 방식에 몇 가지 특이한 점이 있어서, 데이터를 성공적으로 추출하려면 친구에게 도움이 필요해요.

지침

광학 문자 인식(OCR)은 텍스트 이미지를 기계가 읽을 수 있는 텍스트로 변환하는 소프트웨어예요. 숫자를 나타내는 문자 격자가 주어지면, 격자를 숫자 문자열로 변환해요. 격자에 셀 줄이 여러 개 있으면, 출력에서는 각 줄을 ","로 구분해요.

  • 격자는 한 줄 이상의 셀로 이루어져요.
  • 격자의 각 줄은 하나 이상의 셀로 이루어져요.
  • 각 셀은 너비가 세 칸, 높이가 네 칸(3x4)이며 숫자 하나를 나타내요.
  • 숫자는 파이프("|"), 밑줄("_"), 공백(" ")을 사용해 그려요.

엣지 케이스

  • 입력 크기가 올바르지 않으면, 프로그램은 오류가 있음을 알려줘야 해요.
  • 입력 크기는 올바르지만 알아볼 수 없는 셀이 있으면, 프로그램은 그 문자에 대해 "?"를 출력해야 해요.

예시

다음 입력(주석 제외)은 "1234567890"으로 변환돼요.

      _  _     _  _  _  _  _  _  #
    | _| _||_||_ |_   ||_||_|| | # Decimal numbers.
    ||_  _|  | _||_|  ||_| _||_| #
                                 # The fourth line is always blank,

다음 입력은 "123,456,789"로 변환돼요.

    _  _ 
  | _| _|
  ||_  _|
         
    _  _ 
|_||_ |_ 
  | _||_|
         
 _  _  _ 
  ||_||_|
  ||_| _|
         
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
SQLite Exercism

OCR 숫자 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 SQLite 트랙을 연습 문제 81개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.