https://www.acmicpc.net/problem/4341
문제 요약
- 입력을 적절히 파싱하여 연립 방정식의 해를 구하면 됨
- 해가 존재하면 적절히 기약분수 형태로 처리하고 간편한 형태로 출력
- 해가 존재하지 않으면 don't know를 출력해야함
- x 또는 y만 해를 갖는 경우에도 처리를 해줘야함
접근법
- 파싱을 통해 (x계수, y계수, 상수)를 두개 만듬
- "=" 를 기준으로 왼쪽/오른쪽 식을 구분함
- 연산자가 공백으로 구분되기 때문에 항 별로 처리를 할 수 있음
- (x계수, y계수, 상수) 형태로 왼쪽/오른쪽식을 정리할 수 있고, 이항처리를 함
- 연립방정식이 해를 갖는지 판단 => ad - bc
- 해가 있으면 적절히 계산해서 기약분수도 만들고, 출력도 다듬고.... 처리를 함
- 해가 없으면 별도 처리를 하는데
- x만 구하거나, y만 구하거나, 둘다 못구하는 상황일 것임
- 16가지의 경우의 수 처리를 해줘도 됨
- x, y의 계수가 0이거나 0이 아니거나 인데 이런 것들이 4개 있으니까 16가지 경우의 수
- 아니면 조건을 잘 나눠서 처리해봄
- 식이 말이 안되는 경우 : (0, 0, 0이 아닌 값)
- 식이 의미가 없는 경우 : (0, 0, 0)
- 두 경우 다 없는 경우
- => 각각의 식에서 값을 구해서 비교함
- 한쪽은 x가 구해지고 한쪽은 y가 구해지고 이런 상황은 벌어지지 않을 것임