[백준] 1292번 : 쉽게 푸는 문제 (JAVA)

2026. 3. 8. 23:28·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크


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


📌 문제 개요

수열이 다음과 같이 주어진다.

1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ...

즉, 숫자 1은 1번, 2는 2번, 3은 3번, 4는 4번 등장하는 규칙을 가진다.

이때 A번째 수부터 B번째 수까지의 합을 구하는 문제


📌 접근 방법

이 문제는 규칙이 명확하고 범위도 크지 않기 때문에,
수열을 직접 만들어 놓고 A부터 B까지 더하면 된다.

  • 1을 1번 넣고
  • 2를 2번 넣고
  • 3을 3번 넣고
  • 4를 4번 넣는 방식으로

배열에 순서대로 값을 채우면 된다.

문제에서 필요한 최대 위치까지만 만들어 두면, 그 뒤에는 단순히 구간 합을 구하면 끝이다.


📌 핵심 아이디어

이 수열의 핵심 규칙은 다음 한 줄로 정리된다.

  • 숫자 i는 정확히 i번 등장한다.

따라서 반복문으로 수열을 직접 구성할 수 있다.

예를 들어 배열을 만들면 다음처럼 채워진다.

  • 1번째: 1
  • 2번째, 3번째: 2
  • 4번째, 5번째, 6번째: 3
  • 7번째 ~ 10번째: 4

이후 A번째부터 B번째까지 더하면 정답이 된다.


📌 전체 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());

        int[] arr = new int[1001];
        int index = 1;

        for (int i = 1; index <= 1000; i++) {
            for (int j = 0; j < i && index <= 1000; j++) {
                arr[index++] = i;
            }
        }

        int sum = 0;
        for (int i = A; i <= B; i++) {
            sum += arr[i];
        }

        System.out.println(sum);
    }
}

📌 정리

이 문제는 복잡한 알고리즘이 필요한 문제가 아니라,
주어진 규칙대로 수열을 잘 만들어낼 수 있는지를 묻는 구현 문제

  • 숫자 i는 i번 등장한다.
  • 수열을 배열에 직접 저장한다.
  • A부터 B까지 합을 구한다.
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

[백준] 1384번 : 메시지 (JAVA)  (0) 2026.03.10
[백준] 2167번 : 2차원 배열의 합 (JAVA)  (0) 2026.03.09
[백준] 1402번 : 아무래도이문제는A번난이도인것같다 (JAVA)  (0) 2026.03.07
[백준] 13241번 : 최소공배수 (JAVA)  (0) 2026.03.06
[백준] 2018번 : 수들의 합 5 (JAVA)  (0) 2026.03.05
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • [백준] 1384번 : 메시지 (JAVA)
  • [백준] 2167번 : 2차원 배열의 합 (JAVA)
  • [백준] 1402번 : 아무래도이문제는A번난이도인것같다 (JAVA)
  • [백준] 13241번 : 최소공배수 (JAVA)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    배열
    구현
    백준
    백엔드개발자
    기출문제
    정처기
    정처기실기
    자료구조
    정처기오답노트
    프로그래머스
    문자열
    자바
    java
    코딩테스트
    Level2
    정렬
    알고리즘
    브루트포스
    정보처리기사 실기 기출문제
    springboot
    level0
    피보나치
    solved.ac
    수학
    level1
    실기
    dp
    시뮬레이션
    정보처리기사
    완전탐색
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
[백준] 1292번 : 쉽게 푸는 문제 (JAVA)
상단으로

티스토리툴바