맞은 사람 수에도 나오듯이, 어려운 문제였습니다. 맞은 사람들의 코드 길이를 봐도, 3000바이트 아래의 정답 코드가 거의 없을 정도로 구현도 복잡합니다.
기본적으로는 이런 자료구조를 만들어 내면 됩니다.
- "==" 관계인 것들끼리 집합을 만듭니다. 예를 들면 저는 disjoint set을 구현했습니다.
- 각 집합에는 그 집합을 대표하는 "대장"이 있습니다. "대장"이란 그 집합에서 가장 길이가 짧은 단항식을 말합니다.
- 하나의 집합에는 둘 이상의 서로 다른 정수가 있으면 안 됩니다. 어떤 집합에 어떤 정수 값이 이미 들어가 있다면, 그 집합에 새로운 정수를 추가하려는 건 무조건 거짓이 됩니다.
- "!=" 관계는 두 집합을 연결합니다. 서로 다른 두 집합 사이에는 둘 이상의 "!=" 관계가 있을 수 없습니다. "!=" 관계를 출력할 때는 각 집합의 "대장"들만 출력하면 됩니다.
- 같은 집합에 속한 단항식끼리 "!=" 관계가 있다면 전체 문장은 거짓입니다.
gkfkagkfka12 5년 전
어떻게 접근해야 할지 모르겠습니다.
카카오 홈페이지에서 주는 공식 풀이도 이해를 못하겠는데... dfs로 푸는 문제인가요?
접근방법이라도 주시면 감사하겠습니다.