[백준]4796번 캠핑 - 그리디

2021. 2. 1. 15:44·SW개발/코딩테스트

 

cnt = 1
while True:
    a = list(map(int, input().split()))
    if a[0] == 0:
        break

    result = (a[2] // a[1]) * a[0]
    if a[0] < a[2] - ((a[2] // a[1]) * a[1]):
        result += a[0]
    else:
        result += a[2] - ((a[2] // a[1]) * a[1])
    print("Case ", cnt, ": ", sep="", end="")
    print(result)
    cnt += 1

 

코드 설명

테스트 케이스를 입력 받으면서 숫자가 0이 나온다면 반복을 종료한다.

먼저 result 값을 V // P * L 의 연산을 이용해 계산하여 준다. 그 후에 이용 가능한 남은 일수를 체크하는데 만약 남은 일수가 L일 보다 크다면 L일만큼 더해주고 그렇지 않다면 위의 식만큼 더해 준다.

형식에 맞게 출력하여 준다. 

 

Point : 처음 Result 값을  몫 연산을 이용하여 구해준다. 예를 들어 Case 1 과 같은 경우 20 // 8 = 2, 2 * 5 = 10 으로 설정이 된다.

그 후에 남은 휴가 일수는 20 - (8 * 2) = 4일이 남게 된다. 4일과 L일을 비교하여 L일이 더 크다면 4일만큼 더해주고, 남은 일수가 더 크다면 L일만큼만 더해준다.(L일 동안만 사용할 수 있으므로)

이 문제에서 예외 케이스로 발생하는 남은 일수가 L일보다 크게 되는 경우를 고려해주는 것이 중요하다.

728x90

'SW개발 > 코딩테스트' 카테고리의 다른 글

[백준]13305번 주유소 - 그리디  (0) 2021.02.03
[백준]1449번 수리공 항승 - 그리디  (0) 2021.02.02
[백준]1339번 단어 수학 - 그리디  (0) 2021.01.31
[백준]1946번 신입 사원 - 그리디  (0) 2021.01.30
[백준]2217번 로프 - 그리디  (0) 2021.01.29
'SW개발/코딩테스트' 카테고리의 다른 글
  • [백준]13305번 주유소 - 그리디
  • [백준]1449번 수리공 항승 - 그리디
  • [백준]1339번 단어 수학 - 그리디
  • [백준]1946번 신입 사원 - 그리디
Leffe_pt
Leffe_pt
개발자로서 성장하면서 배워온 지식과 경험을 공유하는 공간입니다.
  • Leffe_pt
    Leffe's tistory
    Leffe_pt
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • SW개발 (303)
        • 코딩테스트 (172)
        • 개발이야기 (23)
        • IT 용어 (17)
        • Python (22)
        • Django (46)
        • Flask (2)
        • Database (1)
        • SQLAlchemy (0)
        • Javascript (5)
        • Linux, Unix (3)
        • JAVA (2)
        • Spring (10)
      • 회고 (4)
      • 사진 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    플레이스토어
    Contributor
    트리 #AVL #알고리즘 #자료구조
    배달
    컨트리뷰터
    django
    어플리케이션
    배공파용
    g
    음식
    배달비 공유
    오픈소스
    라이프 스타일
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Leffe_pt
[백준]4796번 캠핑 - 그리디
상단으로

티스토리툴바