RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00982

단어 수집가

Silver IV 실버 IV
난이도
3s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

단어 수집가 도은이는 수첩에 알파벳 소문자 단어 \(N\)개를 적어 두었다. 같은 단어가 여러 번 적혀 있을 수도 있다.

도은이는 단순한 단어일수록 앞에 오는 사전을 만들고 싶다. 중복을 제거한 뒤, 다음 기준으로 정렬하여 출력하여라.

  1. 단어에 쓰인 서로 다른 글자의 수가 적은 단어가 먼저 온다.
  2. 그것이 같으면 길이가 짧은 단어가 먼저 온다.
  3. 길이도 같으면 사전 순서가 빠른 단어가 먼저 온다.
제약
  • \(1 \le N \le 100\,000\)
  • 각 단어는 길이 \(1\) 이상 \(20\) 이하의 알파벳 소문자 문자열이다.
입력 형식

첫째 줄에 단어의 수 \(N\)이 주어진다.

다음 \(N\)개의 줄에 단어가 하나씩 주어진다. 단어는 길이 \(1\) 이상 \(20\) 이하의 알파벳 소문자 문자열이다.

출력 형식

조건에 따라 정렬한 단어를 한 줄에 하나씩 출력한다. 같은 단어는 한 번만 출력한다.

예제 1
입력
5
apple
banana
kiwi
kiwi
level
출력
kiwi
level
banana
apple
설명

서로 다른 글자 수는 kiwi, banana, level이 \(3\), apple이 \(4\)이다. 글자 수 \(3\)인 단어들은 길이순으로 kiwi(\(4\)), level(\(5\)), banana(\(6\)) 순서가 된다.

예제 2
입력
3
bob
aab
abc
출력
aab
bob
abc
설명

bob과 aab는 서로 다른 글자가 \(2\)개, 길이도 \(3\)으로 같아 사전순으로 aab가 먼저다. abc는 서로 다른 글자가 \(3\)개라 마지막이다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

단어 수집가

개요
출제자 난이도 Silver IV 실버 IV 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

단어 수집가

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8