본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 - 13909번: 창문 닫기 [Java]

문제: https://www.acmicpc.net/problem/13909

 

13909번: 창문 닫기

첫 번째 줄에는 창문의 개수와 사람의 수 N(1 ≤ N ≤ 2,100,000,000)이 주어진다.

www.acmicpc.net

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. 정리

  1. 문제 해결이 잘 안된다면 결과로 인한 관계 유추를 해보자