728x90
🔗 문제 링크
https://www.acmicpc.net/problem/1402
📌 문제 개요
여러 개의 테스트 케이스가 주어지고, 각 테스트 케이스마다 하나의 정수 N이 주어진다.
주어진 연산을 통해 해당 수를 만들 수 있는지 판단하여 가능하면 "yes" 를 출력하는 문제이다.
하지만 문제를 자세히 분석해 보면 모든 경우에서 항상 만들 수 있다.
📌 접근 방법
문제의 연산은 본질적으로 숫자를 곱의 형태로 나누거나 다시 합치는 과정이다.
곱셈에는 다음과 같은 성질이 존재한다.
- 결합법칙
(a × b) × c = a × (b × c)
- 항등원
1 × N = N
이 성질 때문에 모든 자연수는 항상 곱의 형태로 표현할 수 있으며,
결국 어떤 수든 다시 만들 수 있다. 즉 불가능한 경우가 존재하지 않는다.
📌 핵심 아이디어
모든 자연수 N은 항상 다음과 같이 표현 가능하다.
N = 1 × N
또는
N = a × b
따라서 문제의 연산을 통해 항상 N을 만들 수 있다.
결론적으로 모든 테스트 케이스의 정답은 "yes" 이다.
📌 전체 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i = 0; i < T; i++){
br.readLine();
System.out.println("yes");
}
}
}
📌 정리
이 문제는 대표적인 백준 낚시 문제 중 하나이다.
문제 설명이 복잡하게 보이지만 실제로는 다음 특징을 가진다.
- 모든 자연수는 곱의 형태로 표현 가능
- 연산을 통해 항상 다시 만들 수 있음
- 따라서 모든 테스트 케이스의 정답은 "yes"
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| [백준] 2167번 : 2차원 배열의 합 (JAVA) (0) | 2026.03.09 |
|---|---|
| [백준] 1292번 : 쉽게 푸는 문제 (JAVA) (0) | 2026.03.08 |
| [백준] 13241번 : 최소공배수 (JAVA) (0) | 2026.03.06 |
| [백준] 2018번 : 수들의 합 5 (JAVA) (0) | 2026.03.05 |
| [백준] 2747번 : 피보나치 수 (JAVA) (0) | 2026.03.04 |