
-Code
import java.io.*;
import java.util.*;
public class BOJ1812 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// x1 + x2 , x2 + x3 ..... xn + x1이므로
// 짝수 위치를 빼주면 결국 2x1로 첫번째 수만 남음
int now = 0;
int[] sumCandy = new int[n];
for (int i = 0; i < n; i++) {
sumCandy[i] = sc.nextInt();
now += i % 2 == 0 ? sumCandy[i] : -sumCandy[i];
}
// 첫번째 캔디 수 구하기
now /= 2;
// 첫 갯수를 알았으므로 sumCandy를 돌면서 갯수의 차이 넣기
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append(now).append("\n");
// 다음 값으로 변경
now = sumCandy[i] - now;
}
System.out.println(sb);
}
}
처음에 sumCandys의 값으로 차를 구할 수 있을 거 같아서 해당 배열의 원소 간의 값 차로 값을 구하려 했으나 실패했습니다. 그래서 어디가 잘못되었는지 찾아보다 x1 + x2 ..... xn + x1이 되는 것을 이용해 전체의 합이 원래 개수의 합의 2배임과 이를 통해 첫 번째 수를 얻을 수 있음을 알게 되었고 그를 통해 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 2644번 촌수계산 (0) | 2026.01.25 |
|---|---|
| [백준/Java] 13549번 숨바꼭질 3 (0) | 2026.01.25 |
| [백준/Java] 2573번 빙산 (0) | 2026.01.24 |
| [백준/Java] 13913번 숨바꼭질 4 (0) | 2026.01.24 |
| [백준/Java] 7798번 Hotel (0) | 2026.01.24 |