문제: https://www.acmicpc.net/problem/13909
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int answer = 0;
int minus = 3;
while(N > 0) {
answer++;
N -= minus;
minus += 2;
}
System.out.println(answer);
}
}
2. 설명
입력 데이터가 최대 21억이기에 배열을 이용한 문제풀이를 하려면 메모리 초과가 생기기에 결과로 인한 관계로 유추할 수 있습니다.
입력값 | 결과 |
1~3 | 1 |
4~8 | 2 |
9~15 | 3 |
3, 5, 7로 간격이 2씩 증가하기에 등차수열로 판단하여 위와 같이 문제를 해결할 수 있습니다.
3. 정리
- 문제 해결이 잘 안된다면 결과로 인한 관계 유추를 해보자
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 12789번: 도키도키 간식드리미 [Java] (0) | 2023.09.27 |
---|---|
백준 알고리즘 - 28278번: 스택 2 [Java] (0) | 2023.09.26 |
백준 알고리즘 - 17103번: 골드바흐 파티션 [Java] (0) | 2023.09.24 |
백준 알고리즘 - 4134번: 다음 소수 [Java] (0) | 2023.09.22 |
백준 알고리즘 - 2485번: 가로수 [Java] (0) | 2023.09.21 |