수강 명단 뒤집기
학생마다 듣는 과목이 적힌 줄 n개가 주어진다.
반복문 대신 집합 내포와 사전 내포(comprehension)로 다음을 만들어 출력하라.
첫 줄에 n이, 다음 n줄에 "이름 과목 과목 ..."이 주어진다.
과목이 하나도 없는 줄도 있다.
같은 학생이 여러 줄에 나올 수 있고, 그 학생의 과목은 그 줄들을 모두 합친 것이다.
한 줄 안에 같은 과목이 거듭 나와도 한 번으로 센다.
1) 서로 다른 학생의 수 S를 출력하고, 이어서 S줄에 "이름 k 과목1 ...
과목k"를 이름 순으로 출력한다.
k는 그 학생이 듣는 서로 다른 과목의 수이고, 과목은 정렬해서 적는다.
과목이 없으면 "이름 0"이다.
2) 서로 다른 과목의 수 C를 출력하고, 이어서 C줄에 "과목 m 이름1 ...
이름m"을 과목 순으로 출력한다.
m은 그 과목을 듣는 학생 수이고, 이름은 정렬해서 적는다.
3) 학생이 한 명뿐인 과목을 정렬해서 한 줄에 빈칸으로 띄워 출력한다.
그런 과목이 없으면 -를 출력한다.
정렬은 모두 문자열의 코드 순서(Python 문자열 비교)로 한다.
- 입력
- 1 ≤ n ≤ 1000.
이름은 영어 소문자 1 ~ 8글자.
과목은 영어 대문자와 숫자 2 ~ 6글자이고, 한 줄에 0 ~ 10개, 서로 다른 과목은 200개 이하다. - 출력
- 1) S + 1줄, 2) C + 1줄, 3) 한 줄
4 kim ART MATH lee MATH kim BIO kim
2 kim 3 ART BIO MATH lee 1 MATH 3 ART 1 kim BIO 1 kim MATH 2 kim lee ART BIO
3 mia CS CS joy CS ART ART zoe
3 joy 2 ART CS mia 1 CS zoe 0 2 ART 1 joy CS 2 joy mia ART