Algorithm/BOJ(Baekjoon Online Judge)

[백준 - 1292번] 쉽게 푸는 문제 - Java //Wello Horld//

koucop 2019. 12. 24. 10:41

이번에는 BOJ의 1292번 문제 "쉽게 푸는 문제" 를 풀어보도록 하자

 

입력으로 구간의 합을 구할 시작을 나타내는 정수 A 와, 끝을 나타내는 정수 B 가 주어진다.

출력으로 해당 구간의 합을 구하면 되는 문제이다.

A, B는 1보다 크거나 같고 1000보다 작거나 같기 때문에 0을 포함한 총 1001개의 공간을 가지고 있는 배열을 만들어서, 먼저 해당배열을 문제에서 주어진 것과 같이 채워주고 A에서 B까지 구간의 합을 구하면 되는 문제이다.

 

성공한 코드는 다음과 같다

import java.io.*;
import java.util.*;

public class sample {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int[] arr = new int[1001];
        StringTokenizer st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        int cur = 1;
        for(int i = 1; i <= 1000; i++){
            for(int j = 1; j <= cur; j++){
                if(i > 1000) break;
                arr[i] = cur;
                i++;
            }
            cur++;
            i--;
        }
        int ans = 0;
        for(int i = A; i <= B; i++){
            ans += arr[i];
        }
        bw.write(ans + "\n");

        bw.flush();
        br.close();
        bw.close();
    }
}

 

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

 

1292번: 쉽게 푸는 문제

첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1≤A≤B≤1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.

www.acmicpc.net

 

혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요.