Notice
Recent Posts
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
관리 메뉴

이우의 개발일지

[프로그래머스/C++] PCCP 기출문제 1번 / 붕대 감기 본문

Coding

[프로그래머스/C++] PCCP 기출문제 1번 / 붕대 감기

공대이우 2024. 5. 18. 16:01

프로그래머스 PCCP 붕대감기

https://school.programmers.co.kr/learn/courses/30/lessons/250137

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

※ 일반 구현 문제

여러 가지 조건을 완벽한 시퀀스로 구현하는데 부족함을 느낌.

주어진 테스트 케이스를 다 통과해도, 나머지 20문제 테스트 케이스 실행할 때 4개 정도 실패.

이유 : heal_time (연속된 힐링 시간) 을 채우고, 초기화하는데서 문제 발생.

초기화 까먹지 말 것!

 

 

#include <string>
#include <vector>
#include <iostream>
using namespace std;

int solution(vector<int> bandage, int health, vector<vector<int>> attacks) {
    int time = 1;
    int now_health = health;
    int attack_chance = 0;
    int finish_attack = attacks.size();
    int heal_time = 0;
    for(int i = 1; i< attacks[attacks.size()-1][0]+1; i++){
        if(time == attacks[attack_chance][0]){
            now_health -= attacks[attack_chance][1];
            if(now_health <= 0) return -1;
            heal_time = 0;
            attack_chance++;
        }
        else{
            heal_time ++;
            if(now_health + bandage[1] > health) now_health = health;
            else now_health += bandage[1];

            if(heal_time == bandage[0]){
                if(now_health + bandage[2] > health) now_health = health;
                else{
                    now_health += bandage[2];
                    heal_time = 0;
                } 
            }
        }
        time ++;
    }
    int answer = now_health;
    return answer;
}

반응형

'Coding' 카테고리의 다른 글

[백준/C++] 1463번 1로 만들기 - (1)  (0) 2024.05.18
[백준/C++] 2108번 통계학  (0) 2024.05.18
[백준/C++] 2563번 색종이  (0) 2024.05.17
[백준/C++] 1158번 요세푸스 문제 [1]  (0) 2024.05.17
[백준/C++] 10773번 제로  (0) 2024.05.16