아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

맞춤법 검사기

면접 대비

시간 제한1초메모리 제한128 MB

요약
사전과 여러 질의 단어가 주어질 때, 각 질의 단어가 올바른지 판별하고, 아니라면 한 글자의 삭제, 대체, 삽입으로 만들 수 있는 사전 단어를 모두 찾는다.
난이도

보통10점 중 5점

유형
문자열, 해시맵, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

새로운 맞춤법 검사 프로그램의 한 모듈을 작성한다. 올바른 모든 단어(모든 활용형 포함)가 실려 있는 사전이 주어질 때, 이 모듈은 주어진 각 단어의 철자가 올바른지 검사해야 한다.

어떤 단어가 사전에 없다면, 다음 세 연산 중 정확히 하나를 그 단어에 적용하여 만들 수 있는 사전 단어들로 교체할 수 있다.

  • 단어에서 글자 하나를 삭제한다.
  • 단어의 글자 하나를 임의의 글자로 바꾼다.
  • 단어에 임의의 글자 하나를 삽입한다.

검사할 각 단어에 대해, 사전에서 가능한 모든 교체 단어를 찾는 프로그램을 작성하라.

입력

입력은 두 부분으로 이루어진다.

첫 번째 부분은 사전에 있는 모든 단어를 한 줄에 하나씩 나열하며, # 한 글자만 있는 줄로 끝난다. 사전의 단어는 모두 서로 다르고, 개수는 최대 10000개이다.

두 번째 부분은 검사할 모든 단어를 한 줄에 하나씩 나열하며, 마찬가지로 # 한 글자만 있는 줄로 끝난다. 검사할 단어는 최대 50개이다.

입력의 모든 단어(사전 단어와 검사할 단어 모두)는 소문자 알파벳으로만 이루어지며, 길이는 최대 15자이다.

출력

검사할 각 단어마다 정확히 한 줄씩, 입력의 두 번째 부분에 등장한 순서대로 출력한다.

  • 단어가 올바른 경우(사전에 있는 경우), 그 단어 뒤에 is correct 를 붙여 출력한다.
  • 그렇지 않으면 단어를 먼저 출력하고 콜론(:)을 붙인다. 교체 단어가 하나 이상 있으면 콜론 뒤에 공백 한 칸을 두고, 가능한 모든 교체 단어를 공백 한 칸으로 구분하여 출력한다. 교체 단어는 사전(입력의 첫 번째 부분)에 등장한 순서대로 나열한다. 교체 단어가 없으면 콜론 뒤에 아무것도 출력하지 않고 줄을 끝낸다.

예제1

  1. 예제 1

    입력
    i
    is
    has
    have
    be
    my
    more
    contest
    me
    too
    if
    award
    #
    me
    aware
    m
    contest
    hav
    oo
    or
    i
    fi
    mre
    #
    
    예상 출력
    me is correct
    aware: award
    m: i my me
    contest is correct
    hav: has have
    oo: too
    or:
    i is correct
    fi: i
    mre: more me