유연근무제

magicdrill·2025년 2월 24일
0

유연근무제

사실 한번이라도 지각을 하면 break로 더 이상 계산을 안해도 될거 같다.

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int make_due_time(int time){
    int hour = time / 100;
    int minute = time % 100;
    
    if(minute >= 50){//10분 더했을 때 60을 넘어간다면?
        hour += 1;
        minute = (minute + 10) - 60;
        time = hour * 100 + minute;
    }
    else{
        time += 10;
    }
    //cout << time << "\n";
    
    return time;
}

int solution(vector<int> schedules, vector<vector<int>> timelogs, int startday) {
    int answer = 0;
    int employee_num = schedules.size();
    int i, j;
    int employee_wish_time, today, due_time, count = 0;
    
    //schedules : 출근 희망 시각
    //timelogs : 각 직원 별 일주일 간 출근 시각
    //startday : 이벤트 시작요일 // 금요일이면 5
    
    for(i = 0; i < employee_num; i++){
        count = 0;
        due_time = make_due_time(schedules[i]);
        for(j = 0; j < timelogs[i].size(); j++){
            today = (startday + j) % 7;
            if(today == 0 || today == 6){//토, 일
                cout << today << "일은 주말 / ";
                count++;
            }
            else{//월, 화, 수, 목, 금
                if(due_time >= timelogs[i][j]){
                    cout << today << "일 정시 출근 / ";
                    count++;
                }
            }
        }
        
        if(count == timelogs[i].size()){
            cout << i << "번 직원 상품 증정";
            answer++;
        }
        cout << "\n";
    }
    
    return answer;
}

0개의 댓글