반응형
https://www.acmicpc.net/problem/15311
약 팔기 문제
최대 2000개의 약봉지를 이용해서 1~1,000,000까지 숫자를 만들 수 있게 구현해보자
제목 그대로 은근 약팔이(?) 문제였고, 구현능력보단 아이디어가 중요한 문제
⚙️내가 푼 정답코드
import sys
N = int(sys.stdin.readline())
result = []
for i in range(1000): # 1000번의
result.append(1) # 1
for j in range(1000): # 1000번의
result.append(1000) # 1000
print(len(result))
print(*result)
📌문제 접근 포인트
1. 문제의 요구조건을 잘 읽어보자. 여러 숫자의 입력을 받아서 출력하는게 아니라 최대 약 요구량을 나타내는 정수 N = 1,000,000으로 고정이다. 예제는 낚시이다. 물론 요구사항은 맞아야하지만, 100만일 때만을 생각해주면 된다.
2. 100만이란 숫자를 쪼개보자, 1000만이란 숫자는 1000 * 1000으로 나타낼 수 있고, 1000은 1*1000으로 나타낼 수 있다. 뭔가 감이 오지않는가? 숫자 1이 1000개, 숫자 1000이 1000개. 즉 둘이 합하면 2000개를 만들 수 있다.
3. 요구 사항인 2000개를 딱 맞춰주려면 2번의 조건에 따라, 1이 1000개, 1000이 1000개 들어있게 만들면 된다.
4. 전체 갯수와 합친 내용물을 출력해보자
반응형
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 11443] 짝수번째 피보나치 수의 합 (python) (0) | 2023.03.27 |
---|---|
[백준 11442] 홀수번째 피보나치 수의 합 (python) (0) | 2023.03.27 |
[백준 19568] 직사각형 (python) (0) | 2023.03.25 |
[백준 1339] 단어 수학 (python) (0) | 2023.03.25 |
[백준 16967] 배열 복원하기 (python) (0) | 2023.03.23 |
댓글