본문 바로가기
Coding Test (코딩 테스트)

[브론즈3]백준 30802번(웰컴 키트) - 코테공부 26일차(2025.02.17)

by BioLearner 2025. 2. 17.
반응형

문제유형

사칙연산

풀이 방법 도출 과정

1. 기본적인 사칙연산을 이용하여 주문 수량을 계산할 수 있다.

2. 티셔츠의 경우, 각 사이즈별 참가자 수를 고려하여 필요한 묶음 수를 계산한 후 주문 가능한 단위에 맞춰 조정한다

3. 펜은 묶음 단위 P자루씩 주문하거나, 부족한 경우 개별 주문을 통해 참가자 수와 정확히 맞춘다.

4. 예외도 생각

시간 복잡도

시간 복잡도는 모두 O(1)이다. 

코드 및 간단설명

사칙연산을 활용한 문제이다.

N = int(input())
lst = list(map(int, input().split())) 
T, P = map(int, input().split())
A = 0

for i in range(6):
  if lst[i] % T == 0:
    A += lst[i] // T
  else:
    A += lst[i] // T + 1

print(A)
print(N // P, N - (P * (N // P)), end=' ')

다른 풀이

1) math함수 사용

math를 사용하여 더 효율적인 계산을 하였다. math.ceil, divmod의 성질을 이용하였다.

import math

# 입력 받기
N = int(input())
lst = list(map(int, input().split()))
T, P = map(int, input().split())

# lst의 앞 6개 원소에 대해 math.ceil을 사용해 올림 나눗셈을 수행하고 합산
A = sum(math.ceil(x / T) for x in lst[:6])
print(A)

# divmod를 사용해 몫과 나머지를 한 번에 계산
q, r = divmod(N, P)
print(q, r)

 

반응형