전공공부
[BOJ_1789] 수들의 합 본문
설명
등차수열
사실 {n/(n+1)}/ 2 이것을 외우고 있었기 때문에 풀 수 있었던 문제였다.
1~100 까지 모두 더 한 값이 5050이다. 이것을 생각 했을 때 등차 수열의 형태로 모두 지나가는 자연수를 더하면서 가면 최대로 서로 다른 수를 사용하면서 자연수 N을 만들 수 있을 것이라고 생각했다. (1,2,3,4,3 = 서로 다른 수를 최대로 사용하면서 13을 만들기 위한 값들) 등차수열을 최대로 활용하고 나머지 하나를 빼면 된다. 그렇기 때문에 아래와 같은 식이 나왔다.
코드
package Math;
import java.io.*;
public class BOJ_1789 {
public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
long S = Long.parseLong(in.readLine());
long ans = 0;
for(long i = 0; i < 100000; i++){
if(((i*(i+1))/2) > S){
ans = i-1;
break;
}
}
System.out.println(ans);
}
}
1789번: 수들의 합
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
www.acmicpc.net
'Study > Problem Solving' 카테고리의 다른 글
[BOJ_14888] 연산자 끼워넣기 (0) | 2023.10.08 |
---|---|
[BOJ_10971] 외판원 순회 2 (0) | 2023.10.05 |
[BOJ_1182] 부분수열의 합 (1) | 2023.10.04 |
[BOJ_15664] N과 M (9~12) (1) | 2023.10.03 |
[BOJ_15656] N과 M (7) (0) | 2023.10.02 |