[Python] 1106번 호텔

2025. 5. 19. 21:33·coding test/Baekjoon

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

 

#1.입력
C,N=map(int,input().split()) #C:people,N:city
cost,people=[0],[0]
for _ in range(N):
    c,p=map(int,input().split())
    cost.append(c)
    people.append(p)
#2.자료형 정의
dp=[float('inf') for _ in range(C+1)]
dp[0]=0  # 0명 모집 비용은 0
#3.동작함수
for n in range(1,N+1):
    for c in range(1,C+1):
        case1=min(dp[c],((c+people[n]-1)//people[n])*cost[n])
        case2 = float('inf')
        if c-people[n]>=0:
            case2=dp[c-people[n]]+cost[n]
        dp[c]=min(case1,case2)
#4.출력
print(dp[C])

 

코드가 맞기까지 오래 걸렸다ㅜㅜ

틀렸던 이유)

C명에 칼 같이 맞추는게 아닌, C명 이상인 경우로 고려해야함.

c-people[n] 값이 0보다 작을 경우 고려를 못함.

#1.입력
C,N=map(int,input().split()) #C:people,N:city
cost,people=[0],[0]
for _ in range(N):
    c,p=map(int,input().split())
    cost.append(c)
    people.append(p)
#2.자료형 정의
dp=[float('inf') for _ in range(C+1)]
#3.동작함수
for n in range(1,N+1):
    for c in range(1,C+1):
        case1=dp[c] #현재값
        m=c//people[n]
        if c%people[n]==0: #나누어 떨어진다면
            case3=m*cost[n]
        else: case3=(m+1)*cost[n]
        case1=min(case1,case3)

        if c-people[n]<0:
            case2=float('inf')
        else: case2=dp[c-people[n]]+cost[n]
        dp[c]=min(case1,case2)
#4.출력
print(dp[C])

이건 처음 맞았던 코드고 이 코드를 정리한게 위에 코드다.

'coding test > Baekjoon' 카테고리의 다른 글

[Python] 11286번 절댓값 힙  (0) 2025.05.22
[Python] 1543번 문서 검색  (0) 2025.05.22
[Python] 2293번 동전 1  (0) 2025.05.19
[Python] 2294번 동전 2  (0) 2025.05.19
[Python] 1149번 RGB거리  (0) 2025.05.18
'coding test/Baekjoon' 카테고리의 다른 글
  • [Python] 11286번 절댓값 힙
  • [Python] 1543번 문서 검색
  • [Python] 2293번 동전 1
  • [Python] 2294번 동전 2
wish404
wish404
자동 로그
  • wish404
    wish-log
    wish404
    • 홈
    • 태그
    • 방명록
    • github
    • 분류 전체보기 (75) N
      • log (8)
        • 블로그 관리 (5)
        • 에러 모음 (2)
      • coding test (47)
        • Algorithm (4)
        • Baekjoon (34)
        • SW Expert Academy (6)
        • etc (3)
      • 프로그래밍 언어 (7)
        • JAVA (7)
      • 데이터 엔지니어링 (5)
        • Kafka (0)
        • Spark (4)
        • Airflow (1)
        • Elasticsearch (0)
      • 머신러닝&딥러닝 (3)
        • Kaggle 스터디 (3)
        • 논문 리뷰 (0)
        • MLOps (0)
      • 신입 개발자가 되기까지 (5) N
        • 취준일기 (1)
        • SSAFY (2)
        • 프로젝트 (1) N
        • CS 공부 (1)
  • 인기 글

  • 태그

    그리디
    그리디 알고리즘
    틀린문제
    복습해야지
    dp
    heapq
    플로이드워샬
    BFS
    최단 경로
    중위순회
    전위순회
    복습
    벨만포드
    SSAFY
    후위순회
    싸피
    dfs
    dijk
    Dijkstra
    다익스트라
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wish404
[Python] 1106번 호텔
상단으로

티스토리툴바