츄르사려고 코딩하는 코집사입니다.
1. [코드업] 기초 100제 1087번 여기까지! 이제 그만~ 자바(JAVA)
1) 문제번호 : 1087번
2) 문제 출처
2. 문제
1, 2, 3 ... 을 순서대로 계속 더해나갈 때,
그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자.
즉, 1부터 n까지 정수를 계속 더한다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.
하지만, 이번에는 그 때의 합을 출력해야 한다.
예를 들어 57을 입력하면
1+2+3+...+8+9+10=55에 다시 11을 더해 66이 될 때,
그 값 66이 출력되어야 한다.
참고
조건문이나 반복문의 코드블록 안에서 break;가 실행되면
가장 가까운 반복 코드블록 구역의 밖으로 빠져나간다.
예시
int n, i, s=0;
scanf("%d", &n);
for(i=1; ; i++) //for 반목문에서 가운데의 조건이 빠진 경우 무한 반복된다.
{
s+=i;
if(s>=n)
break; //참이면, 가장 가까운 반복 코드블록의 밖으로 빠져나간다.
} //break; 가 실행되면 반복을 중단하고 여기로 빠져 나온다.
printf("%d", s);
무한 반복이 되는 코드는
while(1) {...}, do {...}while(1); 등도 가능하다.
0이 아니면 모두 참(true)으로 인식되기 때문이다.
3. 제약사항
-
4. 입력
언제까지 합을 계산할 지, 정수 1개를 입력받는다.
단, 입력되는 자연수는 100,000,000이하이다.
5. 출력
1, 2, 3, 4, 5 ... 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우,
그때까지의 합을 출력한다.
6. 풀이
- 간단한 반복문 문제다. sum이 N보다 크거나 같으면 break;
7. 소스 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int sum = 0;
for(int i=1;i<=N;i++) {
sum += i;
if(sum>=N) break;
}
System.out.println(sum);
}
}
'알고리즘 > 코드업' 카테고리의 다른 글
[코드업] 기초 100제 1091번 수 나열하기3 자바(JAVA) (3) | 2021.02.05 |
---|---|
[코드업] 기초 100제 1090번 수 나열하기2 자바(JAVA) (0) | 2021.02.05 |
[코드업] 기초 100제 1089번 수 나열하기1 자바(JAVA) (0) | 2021.02.05 |
[코드업] 기초 100제 1088번 3의 배수는 통과? 자바(JAVA) (0) | 2021.02.05 |
[코드업] 기초 100제 1086번 그림 파일 저장용량 계산하기 자바(JAVA) (0) | 2021.02.05 |
[코드업] 기초 100제 1085번 소리 파일 저장용량 계산하기 자바(JAVA) (2) | 2021.02.05 |
[코드업] 기초 100제 1084번 빛 섞어 색 만들기 자바(JAVA) (1) | 2021.02.04 |
[코드업] 기초 100제 1083번 3 6 9 게임의 왕이 되자! 자바(JAVA) (0) | 2021.02.04 |
최근댓글