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

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

히스토그램

면접 대비

시간 제한2초메모리 제한1024 MB

요약
텍스트에서 공백과 줄바꿈을 제외한 각 문자의 등장 횟수를 세고, 문자 코드 순으로 # 막대를 세로로 쌓은 히스토그램을 출력한다.
난이도

보통10점 중 5점

유형
구현, 배열, 정렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

보보치카는 펜타곤의 보안 시스템을 해킹하려 한다. 그러려면 비밀 암호문에서 어떤 문자가 가장 자주 등장하는지 알아내야 한다. 문자 출현을 편하게 살펴보기 위해 보보치카는 문자 출현을 그래프로 나타내려고 한다. 그래서 메시지에 있는 문자의 개수를 세어 히스토그램을 만들려고 한다. 히스토그램이란, 메시지에 한 번 이상 등장하는 각 문자마다 막대를 하나씩 대응시키고, 막대의 높이는 그 문자가 메시지에 등장하는 횟수에 비례하는 그래프다.

입력

입력 파일에는 암호화된 메시지 텍스트가 들어 있다. 이 텍스트는 라틴 문자 대소문자, 숫자, 문장 부호(<<.>>, <<!>>, <<?>>, <<:>>, <<->>, <<,>>, <<;>>, <<(>>, <<)>>), 공백, 줄바꿈으로 이루어진다. 입력 파일의 크기는 10410^4바이트를 넘지 않는다. 텍스트에는 공백이 아닌 문자가 적어도 하나 있다. 입력 파일의 모든 줄은 200자를 넘지 않는다.

출력

공백과 줄바꿈을 제외한 각 문자 cc마다 # 문자로 이루어진 막대를 하나 출력한다. 그 개수는 이 텍스트에 있는 문자 cc의 개수와 같아야 한다. 각 막대 아래에는 그 막대에 해당하는 문자를 쓴다. 막대의 아래쪽 끝이 한 줄에 나란히 오도록, 그리고 첫 번째 행과 첫 번째 열이 비지 않도록 히스토그램을 정렬한다. 막대 사이에 빈칸을 넣지 않는다. 막대는 문자 코드가 커지는 순서로 정렬한다.

예제2

  1. 예제 1

    입력
    Hello, world!
    
    예상 출력
         #   
         ##  
    #########
    !,Hdelorw
    
  2. 예제 2

    입력
    Twas brillig, and the slithy toves
    Did gyre and gimble in the wabe;
    All mimsy were the borogoves,
    And the mome raths outgrabe.
    
    예상 출력
             #              
             #              
             #              
             #              
             #              
             #         #    
             #  #      #    
          #  # ###  ####    
          ## ###### ####    
          ##############    
          ##############  ##
    #  #  ############## ###
    ########################
    ,.;ADTabdeghilmnorstuvwy