본문 바로가기
알고리즘 풀이/백준

[백준 15311] 약 팔기 (python)

by char_lie 2023. 3. 25.
반응형

https://www.acmicpc.net/problem/15311

 

15311번: 약 팔기

첫 번째 줄에 동규의 최대 약 요구량을 나타내는 정수 N ($=1\, 000\, 000$) 이 주어진다.

www.acmicpc.net

약 팔기 문제

최대 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. 전체 갯수와 합친 내용물을 출력해보자
반응형

댓글