[백준 1292번] 쉽게 푸는 문제
[백준 1292번] 쉽게 푸는 문제
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 32 33 34 35 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class 백준_손수경_정답_1292 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); int[] arr = new int[1002]; int cnt = 1; int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); //수열 만들기 for (int i = 1; i <= 1000; i++) { for (int j = 0; j < i; j++) { if (cnt == 1001) break; arr[cnt] = i; cnt++; } } int sum = 0; //수열을 만들때, 1번째 인덱스부터 수열을 넣어주었으므로 a부터 b까지의 합을 구하면 됨. for (int i = a; i <= b; i++) { sum += arr[i]; } bw.write(sum + "\n"); bw.close(); } } | cs |
이중 루프를 돌리면서 규칙에 맞는 수열을 만들어 주는데, i는 수열에 넣을 숫자이고, j는 i가 들어가는 횟수이고, cnt는 i를 넣을 인덱스를 말한다. 여기서 cnt = 1부터 시작하였으므로 인덱스는 1부터 시작하고 결국 구하는 값은 a와 b의 인덱스 조정없이 바로 구해주면 된다.
댓글남기기