1 분 소요

1. 문제Permalink

[Bronze V] Affischutskicket - 24183Permalink

문제 링크

성능 요약Permalink

메모리: 30860 KB, 시간: 68 ms

분류Permalink

사칙연산(arithmetic), 수학(math)

문제 설명Permalink

VE OCH FASA! PostNord har för det 1337:e året i rad höjt portot, vilket riskerar att bräcka Programmeringsolympiadens budget.

Varje år skickar PO ut affischer till ca 450 gymnasieskolor. Ett utskick består av tre saker:

  • ett kuvert av C4-storlek (229 mm×324 mm)
  • två affischer av A3-storlek (297 mm×420 mm)
  • ett informationsblad av A4-storlek (210 mm×297 mm)

Det är mycket viktigt att brevet väger högst 50 gram, eftersom portot annars blir dubbelt så högt. För att klara denna magiska viktgräns kan PO styra över vilken sorts papper som används för de tre sakerna. Varje sort har en ytvikt (vikt per area) som typiskt anges i gramm2. Notera att kuvertet består av två sammanklistrade ark av C4-storlek, medan ytvikter och ovanstående mått gäller för ett ark.

Skriv ett program som räknar ut den totala vikten för ett brev.

입력Permalink

Indatan består av tre heltal mellan 50 och 200, ytvikterna i gramm2 för sorterna som används till kuvertet, affischerna respektive informationsbladet.

출력Permalink

Skriv ut ett enda decimaltal: vikten på ett fullständigt brevutskick i gram. Svaret ska anges med minst 3 decimalers noggrannhet (d.v.s. vara inom 5104 från rätt svar).

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도Permalink

  1. 단순 코딩 O(1)

3. 문제 해결 및 코드Permalink


C4, A3, A4 = map(int, input().split())
CCCC = 0.229 * 0.324 # 봉투 C4의 규격
AAA = 0.297 * 0.420 # 봉투 A3의 규격
AAAA = 0.210 * 0.297 # 봉투 A4의 규격
# 120 90 70
print(round((C4 * 2 * CCCC) + (A3 * 2 * AAA) + (A4 * AAAA), 7))
# 각 봉투에 대해 C4는 2장을 합친거니까 *2, A3도 2개의 포스터니까 *2, A4는 1개이니까 그냥 1
view raw 24183.py hosted with ❤ by GitHub
  • 주석을 참고하면서 이해를 돕습니다.Permalink

4. 알고리즘 및 해설Permalink

  1. 문제에서 총 무게를 계산하는 프로그램을 작성하라고 하였다.
    • 문제에서 제시한 각 봉투의 규격에 따라 값을 지정해준다.
    • 이후 해당 문제에서 제시한 우표의 경우 C4 2장, A3 2개, A4 1개라고 하였다.
  2. 우표의 총 규격을 계산한 뒤 소수점 7자리까지 계산하여 출력한다.