Coding/코딩테스트

#1181 단어 정렬

서머스 2020. 10. 29. 20:31

알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.

  1. 길이가 짧은 것부터
  2. 길이가 같으면 사전 순으로

조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다.

 

---------------

 

뭔가 파이썬으로 하면 쉬울 것 같은데 난 일단 c++로 연습 중이라 c++로 짰다

 

직전에 풀었던 문제와 비슷하게 풀었다

1. map<단어, 단어의 길이> 로 구현, 단어는 중복되면 빼면 되니까. 어차피 단어의 길이도 똑같으므로 뭐가 덮어씌워지든 상관은 없다.

2. 입력 단어와 그 길이(length())를 구해서 map에 넣는다.

3. 이걸 다시 vector에 넣는다. 단, 단어의 길이 순서대로 넣어야 하므로 vector<단어의 길이, 단어> 로 push_back 한다.

4. sort해서 단어 길이 순서대로 정렬. 근데 같은 길이면 영어 단어 사전 순으로 정렬해야 하는 조건도 있는데, 딱히 뭐 안건드려도 돌아가더라. 왜그런거지..?

5. vector의 두번째값만 출력한다

'Coding > 코딩테스트' 카테고리의 다른 글

#67256 키패드 누르기  (0) 2021.07.17
#12926 시저 암호  (0) 2021.02.17
#17677 뉴스 클러스터링  (0) 2020.11.05
#13414 수강신청  (0) 2020.10.29
#12945 피보나치 수열  (0) 2020.10.29