반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

욱꾸미의 주꾸미 발

[코딩테스트] 백준(BAEKJOON) - 수들의 합(Java, 1789번) 본문

코딩테스트/백준

[코딩테스트] 백준(BAEKJOON) - 수들의 합(Java, 1789번)

욱꾸미 2023. 4. 21. 00:34
반응형

안녕하세요~

이번에 풀어본 문제는 수들의 합 이라는 문제입니다.

 

쌓여있는 문제 하나씩 기록해나가면서 저도 복습해보는 시간이라 생각하고 있습니다.

 

그럼 바로 문제부터 만나보시죠~

 

https://www.acmicpc.net/problem/1789

 

1789번: 수들의 합

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

www.acmicpc.net

 

다음은 제가 작성한 코드입니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.StringTokenizer;


public class Main {
		public static void main(String[] args) throws NumberFormatException, IOException {
			
			Scanner sc=new Scanner(System.in);
			long number=sc.nextLong();
			
			long index=1;
			while(true)
			{
				if(index*(index+1)/2<=number)
					index++;
				else
					break;
			}
			
			System.out.println(index-1);
			
			
			
	}

}

여기서 핵심은 

 

if(index*(index+1)/2<=number)

 

여기 부분입니다. 해당 내용에 대해서는 오래전~ 고등학교, 중학교 수학을 떠올려볼까요?

바로바로 1~N까지의 합 공식입니다.

N(N+1)/2 이 공식이었습니다. 저는 해당 공식을 합을 구해나갔고 합이 number보다 크다면 반복문 종료~!

 

그 다음에 초과된 수에서 -1이 최대값이 되겠죠?

 

이렇게 계산했습니다.

 

해당건은 간단한 공식을 통해서 해결할 수 있었습니다.

 

감사합니다. :D

반응형