Algorithm/기타

[백준 1834번] 나머지와 몫이 같은 수 (Java 풀이)

agility 2020. 1. 14. 23:12

백준알고리즘 1834번 : 나머지와 몫이 같은 수

 

철저하게 수학 공식과 데이터 범위만 따지는 문제이다.

문제를 읽어나가다보면, 더해주어야 하는 숫자의 갯수는 입력받는 값 N-1개라는 것을 알 수 있다.

또한, 이는 초항이 N+1이고, 등차가 N+1인 등차수열이라는 것 역시 알 수 있다.

나머지와 몫이 같으려면, 일단 나머지가 존재해야 하기 때문이다.

 

그러나 이만 믿고 int변수를 선언한 후 for문을 돌렸다간.. 실패를 면치 못한다.

아니 for문이 아니라 등차수열의 합 공식인 n(a+l)/2 를 이용해도 실패다.

언제나 우리는 집어넣을 수 있는 값 중 극한의 값을 집어넣어야한다.

N값에 200만을 집어넣는다면 for문은 200만번-1번 돌것이고,

int자료형이 담을 수 없는 값이 추출된다.

 

 

 

 

풀이 과정



1. N과 정답을 담을 long type의 변수를 선언한다.
2. 등차수열의 합 공식[n(a+l)/2]을 이용하여 정답을 계산하고 출력한다.

 

 

 

소스 ▽

더보기
import java.util.Scanner;

public class Main {// 1834번 나머지와 몫이 같은 수

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long num = sc.nextInt();

		long ans = (num - 1) * (num + 1 + (num + 1) * (num - 1)) / 2;

		System.out.println(ans);

	}
}