※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 15311번 문제인 약 팔기이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/15311
15311번: 약 팔기
첫 번째 줄에 동규의 최대 약 요구량을 나타내는 정수 N ($=1\, 000\, 000$) 이 주어진다.
www.acmicpc.net
1을 1000개 나열한 수열의 첫 원소부터 i번째 원소까지의 합은 항상 i가 됨을 관찰하자.
또한, 1000을 1000개 나열한 수열의 첫 원소부터 j번째 원소까지의 합은 항상 1000j가 됨을 관찰하자.
이와 같은 두 관찰을 이용하면 위의 두 수열을 이어붙인 수열에서는 1 이상 100만 이하의 모든 수에 대하여 합이 그 수인 연속 부분수열을 어렵지 않게 찾을 수 있음을 알 수 있다. 해당 수열은 문제의 조건을 만족하므로 이를 출력해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout << 2000 << '\n';
for (int i = 0; i < 1000; i++) cout << 1 << ' ';
for (int i = 0; i < 1000; i++) cout << 1000 << ' ';
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 2713 // C++] 규현이의 사랑을 담은 문자메시지 (2) | 2023.11.15 |
---|---|
[BOJ 2718 // C++] 타일 채우기 (0) | 2023.11.14 |
[BOJ 7286 // C++] Ancient Keyboard (1) | 2023.11.12 |
[BOJ 2508 // C++] 사탕 박사 고창영 (0) | 2023.11.11 |
[BOJ 2097 // C++] 조약돌 (0) | 2023.11.10 |