코딩테스트/백준

[BOJ 1024] 수열의 합 (S2)

34suuuuu 2024. 12. 26. 16:01

📍 문제 

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

 

📍 문제 풀이

갑자기 등장한 등차수열 합 공식

두둥..

 

연속하는 처음 수를 `l`의 개수만큼 더한 결과가 `n`과 같으면 이 전의 수들 전부 출력

같지 않으면 `l`증가 

`l`값이 100이 넘어도 `-1` 출력

 

등차수열 합 공식

 

📍 전체 코드

import java.util.Scanner;

public class boj_1024 {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int n = sc.nextInt();
       int l = sc.nextInt();

       while (true) {
          int min = n / l - (l - 1) / 2;

          if (min < 0 || l > 100) {
             System.out.println(-1);
             return;
          }

          int sum = l * (min * 2 + (l - 1)) / 2;

          if (sum == n) {
             for (int i = 0; i < l; i++) {
                System.out.print((min + i) + " ");
             }
             return;
          }
          l++;
       }
    }
}

'코딩테스트 > 백준' 카테고리의 다른 글

[BOJ 1141] 접두사 (S1)  (1) 2024.12.31
[BOJ 1092] 배 (G5)  (0) 2024.12.28
[BOJ 14719] 빗물 (G5)  (0) 2024.12.23
[BOJ 12738] 가장 긴 증가하는 부분 수열 3 (G2)  (1) 2024.12.20
[BOJ 1107] 연산자 끼워넣기 (G5)  (0) 2024.12.15