반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- level3
- 일반화
- 백준
- 프로그래머스
- level4
- WSL
- 3일컷
- c#
- level2
- delegate
- WPF
- MySQL
- MVVM
- 쿼리
- 닫기버튼
- 스프링부트
- JPA
- 1931번
- Java
- 코테
- springboot
- 보통2종
- 코딩테스트
- 자바
- Python
- Spring Boot
- programmers
- SQL
- 운전면허
- 씨샵
Archives
- Today
- Total
욱꾸미의 주꾸미 발
[코딩테스트] 백준(BAEKJOON) - 수들의 합(Java, 1789번) 본문
반응형
안녕하세요~
이번에 풀어본 문제는 수들의 합 이라는 문제입니다.
쌓여있는 문제 하나씩 기록해나가면서 저도 복습해보는 시간이라 생각하고 있습니다.
그럼 바로 문제부터 만나보시죠~
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
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
| [코딩테스트] 백준(BAEKJOON) - 주유소(Java, 13305번) (0) | 2023.04.29 |
|---|---|
| [코딩테스트] 백준(BAEKJOON) - 전자레인지(Java, 10162번) (0) | 2023.04.29 |
| [코딩테스트] 백준(BAEKJOON) - 로프(Java, 2217번) (0) | 2023.04.21 |
| [코딩테스트] 백준(BAEKJOON) - 거스름돈(Java, 5585번) (0) | 2023.04.15 |
| [코딩테스트] 백준(BAEKJOON) - 보물(Java, 1026번) (0) | 2023.04.15 |