공부/C++

[C++] 프로그래머스 유연근무제

굴러다니다니 2025. 5. 19. 17:40

9시 58분으로 정했다면 10시8분이 커트라인이라는게 포인트

958 -> 1008로 바꿔주는 로직을 넣어야한다.

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> schedules, vector<vector<int>> timelogs, int startday) {
    int answer = 0;
    vector<int> duetime;
    for (int i = 0; i < schedules.size(); i++){
        int minute = schedules[i]%100;
        if (minute + 10 >= 60){
            duetime.push_back(schedules[i]+10 - 60 + 100);
        }
        else {
            duetime.push_back(schedules[i]+10);   
        }
    }
    
    for (int i = 0; i < timelogs.size(); i++){
        bool success = true;
        for (int j = 0; j < 7; j++){
            if (timelogs[i][j] > duetime[i]){
                if(!((startday + j)%7 == 6 || (startday+j)%7 == 0)) {
                    success = false;
                    break;
                }
            }
        }
        if (success) answer++;
    }
    return answer;
}
728x90
반응형