[python_파이썬_Pass]백준_30802번_웰컴키드_구현_풀이

2024. 9. 13. 11:29코드리뷰

728x90
반응형

공부하는허딩크 : https://www.youtube.com/live/AgMXuQAl4JE?feature=shared

※회사 점심시간 활용

 

<첫번째, 두번째, 세번째 시도 : 틀렸습니다.>

정확하다고 생각했는데 틀렸다...

import sys
input = sys.stdin.readline

N = int(input())
Tshirts = list(map(int, input().split()))
T, P = map(int, input().split())

sorder = 0

for shirt in Tshirts:
  if shirt <= T:
    sorder += 1
  else:
    sorder += shirt // T
    if shirt % T:
      sorder += 1

print(sorder)
print(*(N // P, N % P))
import sys
input = sys.stdin.readline

N = int(input())
Tshirts = list(map(int, input().split()))
T, P = map(int, input().split())

sorder = 0

for shirt in Tshirts:
  if shirt <= T:
    sorder += 1
  else:
    sorder += shirt // T + 1

print(sorder)
print(*(N // P, N % P))
import sys
input = sys.stdin.readline

N = int(input())
Tshirts = list(map(int, input().split()))
T, P = map(int, input().split())

sorder = 0

for shirt in Tshirts:
  if shirt <= T:
    sorder += 1
  else:
    sorder += shirt // T
    if shirt % T != 0:
      sorder += 1

print(sorder)
print(*(N // P, N % P))

 

<네번째 시도 : 맞았습니다.>

shirt가 0일 경우도 고려를 했어야 했는데 위에서는 해당 조건을 놓쳤다.

조금만 신경쓰면 해결 할 수 있는 문제인 것 같다.

import sys
input = sys.stdin.readline

N = int(input())
Tshirts = list(map(int, input().split()))
T, P = map(int, input().split())

sorder = 0

for shirt in Tshirts:
  if shirt <= T and shirt > 0:
    sorder += 1
  elif shirt == 0:
    continue
  else:
    sorder += shirt // T
    if shirt % T != 0:
      sorder += 1

print(sorder)
print(*(N // P, N % P))

 

<다른 사람 풀이 참고>

이거 아이디어 좋네. 1~5의 조건에서 -1을 하고 0~4까지는 5로 나눌때 답이 0이므로 +1을 한다.

5까지는 답이 1이, 10은 2가 나와야 함으로 -1을 해서 1~5까지는 답이 0 + 1 / 6~10까지는 답이 1 + 1 이렇게 나올 수 있는 방법이다.

x = 0이면 어차피 int(-1 / 5 + 1)가 되서 답은 0이 나와서 이건 이대로 답이 된다.

n = int(input())
size_cnt = [int(x) for x in input().split(' ')]
t, p = [int(x) for x in input().split(' ')]

print(sum(int((x - 1) / t + 1) for x in size_cnt))
print(n // p, n % p)
728x90
반응형