문제
11670. 초등수학 : https://www.acmicpc.net/problem/11670
11670번: 초등 수학
입력과 같은 순서대로 (a,b) 순서쌍이 유효한 방정식과 함께 출력된다. 각각의 방정식은 5개의 요소로 나뉜다. a와 3개의 연산자(+ 혹은 - 혹은 *)중 하나, b 그리고 = 와 연산결과이다. 모든 연
www.acmicpc.net
문제 파악하기
- 모든 입력값은 항상 3가지 결괏값을 가질 수 있습니다.
- 입력된 모든 값이 서로 다른 결괏값을 가질 수 있는지와 다르다면 어떻게 다른지 출력하는 문제입니다.
- 입력되는 값이 10-6 ~ 106 사이의 정수이기 때문에 int형보다는 long long int형이 계산하기 편해 보입니다.
- 입력 값이 하나의 결과에 대응되어야 하기 때문에 이분 매칭 알고리즘을 이용하면 됩니다.
문제 해결하기
- 문제를 그래프 바꾸기는 쉽습니다. 입력값과 결괏값으로 나눠서 나올 수 있는 결괏값에 입력값을 연결하면 됩니다.
- 다만, 결괏값은 중복될 수 있기 때문에 중복된 값들을 제거해야 합니다.
Ex. result.erase( unique(result.begin(), result.end()), result.end() ); - 입력값과 결괏값을 그래프로 변환했으면, 이분 매칭을 진행하면 됩니다.
- 마지막으로 결괏값을 출력하려면 이분 매칭에 사용한 배열을 사용하면 쉽게 마무리됩니다.
후기
이분 매칭을 익히는데 유용한 문제로 보입니다. 이분 매칭을 연습하고 싶다면 추천하고 싶은 문제라고 할 수 있겠네요. 다만, 중복된 값을 제거하고 찾는데 다양한 방법이 사용될 수 있다고 생각합니다.
'문제 노트 > 백준' 카테고리의 다른 글
숫자 게임( BOJ 2923 ) (0) | 2020.11.19 |
---|---|
흙길 보수하기( BOJ 1911 ) (0) | 2020.11.18 |
The King of the North( BOJ 9209 ) (0) | 2020.11.18 |
Cops and Robbers( BOJ 16407 ) (0) | 2020.11.16 |
피타고라스 수( BOJ 14398 ) (0) | 2020.11.12 |