서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
입력
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
출력
첫째 줄에 자연수 N의 최댓값을 출력한다.
예제 입력 1 복사
200
예제 출력 1 복사
19
문제풀이
s : 서로다른 n개의 자연수의 합
자연수 n의 최대값은 얼마인가?
서로다른 n개의 합의 값은 200
서로다른 19개의 수를 합하여 만든 값은 200
최대한 많은 자연수를 사용해서 S를 만들기
만드는 숫자는 서로 다른수
1부터 작은 수부터 사용해야 최대 개수로 사용 가능
문제해결
N의 최댓값을 구하기 위해서는 1부터 N까지 더하되, 합계가 S와 같으면 그냥 출력, S보다 커지면 N-1출력
n = int(input())
sum = 0
count = 0
total = 0
while True :
if n < total :
break
else :
count += 1
total += count
print(count-1)
Node.js 추가(2023.05.02)
let fs = require("fs");
let input = fs.readFileSync("./test.txt").toString().split("\n");
//let input = fs.readFileSync("/dev/stdin").toString().split("\n");
let s = Number(input[0]);
let sum = 0;
let count = 0;
while (sum <= s) {
count += 1;
sum += count;
}
console.log(count - 1);
'코테풀이 > 그리디' 카테고리의 다른 글
[프로그래머스 | 레벨2] 큰 수 만들기(그리디, 숫자 제거해서 큰수만들기) (0) | 2022.04.12 |
---|---|
[프로그래머스 | 2단계] 구명보트(그리디, 가벼운사람-무거운사람태우기) (0) | 2022.04.12 |
[백준 | 실버2] 1541번: 잃어버린 괄호(그리디, 괄호 쳐서 최소값만들기) (0) | 2022.03.16 |
[백준 | 실버3] 11399번 ATM(그리디, 정렬) (0) | 2022.03.16 |
[백준 | 실버3] 11047번: 동전 0(그리디, 동전 최소개수 생성) (0) | 2022.03.14 |
[백준 | 실버5] 1789번: 수들의 합