BOJ 1764

2947 단어 bojboj

BOJ 1764

이 문제는 두 집합의 곱집합을 구해서 사전순으로 정렬하는 문제이다. 파이썬에서는 이것을 아주 쉽게 수행할 수 있다.

일단 두 수를 받아서 앞으로 입력받을 이름의 개수를 확인한다.

dc, bc = map(int, input().split())

그 다음 실제로 이름을 입력받아 그것을 set 형태의 변수에 저장한다. Generator를 사용하면 이것을 어렵지 않게 구현할 수 있다.

ds = set(input() for _ in range(dc))
bs = set(input() for _ in range(bc))

마지막으로, 입력받은 두 이름 집합의 곱집합을 구해서 그 길이와 내용을 출력한다. 여기서 이름은 사전순으로 정렬되어야 하기 때문에 sorted 함수를 사용해서 출력한다.

dbs = ds & bs
print(len(dbs))
print('\n'.join(sorted(dbs)))

Python으로 풀기에는 어렵지 않은 문제이다! C언어로 문제를 풀이할 때에는 이름의 사전순 정렬을 직접 구현해야 하는 것으로 알고 있는데, 이것때문에 쉽지 않은 문제에 속할 것이다. Solved.ac 레이팅이 실버 IV로 되어있는 데에는 이유가 있을 것이다.

문제 끝!

좋은 웹페이지 즐겨찾기