[프로그래머스/Python] PCCP 기출문제 1번 붕대감기 - 코딩테스트

2025. 2. 26. 01:04·코딩테스트 준비/문제풀이

프로그래머스 PCCP 기출문제 1번 붕대감기 링크는 아래에 있다.

 

↓  ↓  ↓

 

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

프로그래머스 코딩테스트 문제는 길어 보이지만 설명을 아주아주 친절하게 잘해놓았다.

문제가 이해하기 어렵진 않았지만 1초씩 증가하며 프로그램을 짜기에는 뭔가 더 좋은 방법이 있을 것 같아서 손으로 풀어봤다. 공격을 받을 때마다 한꺼번에 충전된 체력을 더해주고 공격받은 피해량을 빼주면 더 나은 코드가 될 것 같았다.

 

입출력 첫 번째 예시로 풀이를 해보면 2초와 9초 사이에는 공격이 없으므로 붕대를 감는 중이다.

9초 때는 공격을 받기 때문에 체력을 회복할 수 없으므로 9-2에서 1초를 더 빼준다.

결국 6초 동안 회복할 수 있는 체력은 11(6+5) 점이다.

만약 공격 시간 차이가 11초라면 1초마다 얻는 11점과 5초마다 얻는 10점을 합해서 21점이 된다.

따라서 아래 점화식이 도출된다.

(bandage[1] * diff) + (diff // bandage[0]) * bandage[2]

 

 

정답 코드
def solution(bandage, health, attacks):
    max_health = health
    ptime = 0
    for ctime, attack in attacks:
        diff = ctime - ptime - 1
        health += (bandage[1] * diff) + (diff // bandage[0]) * bandage[2]
        if health > max_health:
            health = max_health - attack
        else:
            health -= attack
        ptime = ctime
        if health < 1:
            return -1
    else:
        return health

 

문제에 주어진 변수들의 길이가 크지 않아서 1초마다 로직을 짜도 통과는 하겠지만 점화식을 세우는 것도 괜찮은 방법 같았다.

저작자표시 비영리 변경금지

'코딩테스트 준비 > 문제풀이' 카테고리의 다른 글

[프로그래머스/Python] 거리두기 확인하기 lv2 - 파이썬 풀이  (0) 2025.03.06
[프로그래머스/Python] PCCP 기출문제 3번 충돌위험 찾기 풀이  (0) 2025.02.24
[프로그래머스/파이썬] PCCP 기출문제 2번 퍼즐 게임 챌린지 - 이분탐색  (0) 2025.02.23
[프로그래머스/Python] PCCP 기출문제 1번 동영상 재생기 - 파이썬  (0) 2025.02.22
[백준] 11404번 플로이드 워셜 알고리즘 설명 - 파이썬 with python  (0) 2025.02.20
'코딩테스트 준비/문제풀이' 카테고리의 다른 글
  • [프로그래머스/Python] 거리두기 확인하기 lv2 - 파이썬 풀이
  • [프로그래머스/Python] PCCP 기출문제 3번 충돌위험 찾기 풀이
  • [프로그래머스/파이썬] PCCP 기출문제 2번 퍼즐 게임 챌린지 - 이분탐색
  • [프로그래머스/Python] PCCP 기출문제 1번 동영상 재생기 - 파이썬
하이야니
하이야니
또 취준..!
  • 하이야니
    하이야니's 스케치
    하이야니
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 코딩테스트 준비
        • 알고리즘 개념
        • 문제풀이
      • 파이썬
      • 자바
      • 리눅스
      • C언어
      • 여행
        • 국내
        • 해외
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    거리두기확인하기파이썬
    백준유클리드호제법
    유클리드호제법파이썬
    pccp기출문제
    프로그래머스거리두기확인하기
    백준bfs
    벨만포드
    벨만포드다익스트라
    유클리드호제법최대공약수
    다익스트라
    pccp기출문제1번
    프로그래머스pccp기출문제
    너비우선탐색파이썬
    벨만포드음수사이클
    프로그래머스거리두기
    프로그래머스거리두기확인하기파이썬
    프로그래머스pccp
    거리두기확인하기풀이
    프로그래머스코딩테스트
    프로그래머스파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
하이야니
[프로그래머스/Python] PCCP 기출문제 1번 붕대감기 - 코딩테스트
상단으로

티스토리툴바