Problem Solving/백준

[백준/c++] 1402 - 아무래도이문제는A번난이도인것같다

세고래 2021. 5. 26. 04:07

https://www.acmicpc.net/problem/1402

 

1402번: 아무래도이문제는A번난이도인것같다

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다.

www.acmicpc.net


개인적으로... 개빡치는 문제였던..🤬 출제자님이 의도한게 이거라면 성공했다.

모든 경우의 수를 다 생각해보고, 어떻게 수를 해체해야 하는지 고민고민 하면서

아 난 역시 문과생이라 수에 약한건가? 내가 브론즈 문제를 못푼다고? 하면서 자괴감에 빠져있었는데

진짜 도저히 안 될 것 같아서 구글링해보니... ㅋㅋ.... 진짜 어이없는 문제였다.

1) 풀이

결론부터 말하자면, 모든 수는 무조건 "yes"를 출력하게 되어있다.

내가 처음에 이 문제를 풀 때 가졌던 의문은 이거였다.

문제에서 주어지는 예제는 6과 5인데, 여기에서 6은 2*3이기 때문에 5가 된다고 한다고 되어있지만

사실 1을 곱한다고 생각하면 1+2+3=6 이 되는 거 아닌가? 라고 생각했었다.

여기에서 조금만 더 생각을 발전시켰다면 좋았을텐데... 아쉽지만 다음에는 더 잘 생각할 수 있겠지.

 

이것만 보고 아! 했다면 그게 바로 정답😂

모든 수는 A=A*1*1*1*....*1 로 정의할 수 있다.

즉, A를 B로 만들기 위해서는 필요한 만큼 1을 곱해주면 된다.

 

진짜 내 자존심을 상하게 만드는 ... 문제였던... 후... 잊지 않겠다.

2) 최종 소스코드
#include <iostream>
using namespace std;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int a, b, t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		cin >> a >> b;
		cout << "yes" << '\n';
	}
}
3) 참고자료

https://happy-family.tistory.com/entry/%EB%B0%B1%EC%A4%801402-%EC%95%84%EB%AC%B4%EB%9E%98%EB%8F%84%EC%9D%B4%EB%AC%B8%EC%A0%9C%EB%8A%94A%EB%B2%88%EB%82%9C%EC%9D%B4%EB%8F%84%EC%9D%B8%EA%B2%83%EA%B0%99%EB%8B%A4%EB%B8%8C%EB%A1%A0%EC%A6%881

728x90