알고리즘 공부💥/JUNGOL

[jungol] Beginner_Coder / 문자열 / 1516 / 단어 세기 / python

hyunsix 2021. 7. 14. 18:27

1516 : 단어 세기

제한시간1000 ms    메모리제한32 MB    해결횟수1010 회    시도횟수2408 회   

문제

   Korean    English  

임의의 문장을 입력받아 각 단어별로 나눈 후에 단어들의 중복되는 개수를 구하는 프로그램을 작성하시오.

 

<처리조건>

(1) 입력된 스트링은 글자의 제한은 없다. 즉, 알파벳 대.소문자, 공백, ', ' 등도 입력으로 들어 올 수 있다. 

(2) 입력된 문장에서 각 단어사이의 구분은 공백으로 한다. 

(3) 단어에는 공백을 제외한 모든 문자들이 포함된다.​ 

 

입력형식

임의의 문장을 입력받는다.(문장의 길이는 200 이하)

하나의 결과가 나온 후에도 계속 새로운 입력을 받다가, "END"가 입력되면 프로그램을 종료한다. (문장의 개수를 30을 넘지 않는다.)

 

출력형식

 

각 문장 단위로 단어들의 발생 빈도를 오름차순 크기(아스키코드)순으로 출력한다.

 

입력

I AM DOG DOG DOG DOG A AM I
I AM OLYMPIAD JUNGOL JUNGOL OLYMPIAD
END

출력

A : 1
AM : 2
DOG : 4
I : 2
AM : 1
I : 1
JUNGOL : 2
OLYMPIAD : 2

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=788&sca=2050 

 

JUNGOL

 

www.jungol.co.kr

 

💥접근법

  1. 문장 하나당 하나의 리스트를 만들고 카운트할 때 쓸 리스트도 만들자
  2. 우선 set함수를 이용해서 문장 내 중복 단어를 제거해주자
  3. 기존의 인풋받은 문장과 중복제거한 리스트를 비교하며 인덱스를 이용해서 카운트해주자

 

👀코드구현