친구들
면접 대비시간 제한1초메모리 제한128 MB
대문자 친구 집합에 대해 합집합, 교집합, 차집합을 계산한다. *가 +와 -보다 우선하며 같은 우선순위는 왼쪽부터 결합한다.
문제
친구들과 함께 성대한 생일 파티를 계획하려고 한다. 계획을 세우다 보면 친구들의 집합에 대해 여러 연산을 해야 한다는 것을 알게 된다.
- 두 그룹
g1과g2를 모두 초대하려면, 파티 그룹은g1 + g2가 되며 이는 두 그룹의 합집합이다. - 두 그룹의 교집합은
g1 * g2로 계산하며, 두 그룹에 공통으로 속한 원소들의 집합이다. - 그룹
g1을 초대하되 다른 그룹g2의 구성원을 모두 제외하려면g1 - g2로 쓰며, 이는 차집합이다.
교집합(*)은 합집합(+)과 차집합(-)보다 우선순위가 높다. 모든 연산은 왼쪽 결합이다. 즉, A op1 B op2 C 에서 op1 과 op2 의 우선순위가 같다면 먼저 A op1 B 를 계산한다.
입력
입력은 하나 이상의 줄로 이루어진다. 각 줄에는 계산해야 할 식이 하나씩 들어 있다. 식은 문법적으로 올바르며 다음 문자들로만 구성된다.
{와}- 원소를 나타내는
A부터Z까지의 대문자 (각각 한 명의 친구를 의미한다) - 연산자
+,-,* - 그룹화를 위한
(와)
한 줄의 길이는 255자를 넘지 않는다.
출력
각 식의 결과 집합을 중괄호 { 와 } 로 감싸서 한 줄에 하나씩 출력한다. 각 집합의 원소는 알파벳 순으로 정렬하여 출력한다.