[백준 15311] 약 팔기 [Java]
2025. 8. 13. 18:25ㆍPS 풀이/Baekjoon Online Judge
문제
15311번: 약 팔기
boj.ma
풀이
문제 요약
길이가 최대 2,000인 수열의 연속된 부분 수열의 합으로 최대 1부터 N까지의 모든 수를 나타내야 한다.
아이디어
구성되는 수열이 꼭 최소일 필요가 없다. 또한 연속된 부분 수열로 1부터 100만 까지 표현해야 한다.
동일한 수로 구성되지 않는다면 수의 위치에 따라 표현할 수 있는 수가 제한받는다.
K는 최대 2000이며, 100만은 1,000*1,000으로 표현할 수 있다. 1000 단위보다 작은 수는 999개의 1로 표현할 수 있다.
따라서 999개의 1과, 1,000개의 1,000으로 모든 수를 표현할 수 있다.
// Solve
int[] res = new int[1999];
Arrays.setAll(res, i -> i < 999 ? 1 : 1000);
풀이 시간
10분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/hard/15311.java
problem-solving/baekjoon-online-judge/hard/15311.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
| [백준 01612] 가지고 노는 1 [Java] (1) | 2025.08.15 |
|---|---|
| [백준 11947] 이런 반전이 [Java] (4) | 2025.08.14 |
| [백준 04446] ROT13 [Java] (1) | 2025.08.13 |
| [백준 30679] 별 가두기 [Java] (0) | 2025.08.12 |
| [백준 02168] 타일 위의 대각선 [Java] (0) | 2025.08.11 |