-
[백준 1834번] 나머지와 몫이 같은 수 (Java 풀이)Algorithm/기타 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); } }
'Algorithm > 기타' 카테고리의 다른 글
[백준 9506번] 약수들의 합(Java 풀이) (0) 2020.01.19 [백준 9625번] BABBA (Java 풀이) (0) 2020.01.18 [백준 2851번] 슈퍼마리오 (0) 2020.01.12 [백준 2740번] 행렬 곱셈 (0) 2020.01.08 [백준 11005번] 진법 변환 2 (1) 2020.01.05