CS/Algorithm

[백준:1789] 수들의 합 - JAVA (백준 : InputMismatch오류)

yujindonut 2021. 7. 13. 15:49
728x90

첫째 줄에 자연수 S는 범위를 봐서는, long으로 받아야하는데 int로 받음

 

import java.util.Scanner;

public class Main {

	public static int sum(long n){
		
		long sum = 0;
		int i;
		for(i = 1; i < n; i++) {
			sum += i;
			if(sum > n) break;
		}
		return i - 1; //마지막 숫자를 더하고 그에 맞는 한개를 빼버림
	}
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		long N = scan.nextLong();
		
		System.out.println(sum(N));
		
		scan.close();		
	}
}

Greedy문제! 처음에 문제 이해하는데 어려움을 겪어서 다른분 문제 해석을 보고 코드를 썼음

1부터 숫자를 더하고, 더해진 숫자가 입력했던 숫자보다 커지면, 그만큼 차이?를 다른 숫자로 빼버리면 된다!! 

728x90