문제
그렙에서는 유연 근무제를 실행할려고 합니다. 이때 직원들의 참여율을 높이기 위해서 일주일동안 지각을 안한 직원에게 상품을 줄려고 합니다. 이때, 희망 시각보다 10분정도는 늦어도 괜찮습니다.
schedules에는 직원들의 희망 출근 시간이 저장되어있고, timelogs는 직원들의 실제 출근 데이터가 저장 되어있습니다. 주말을 제외한 주중 출근을 한번도 지각하지 않은 직원의 명수를 출력해주세요.
알고리즘 아이디어
- schedules에서 하나의 데이터를 선택한 후, 10분 뒤 시간을 저장합니다.
- timelogs에서 데이터를 하나씩 비교하면서 정시 출근 날짜의 데이터를 얻습니다.
- 위 데이터가 5가 아니라면, 한번이라도 지각했으므로 상품을 가져갈 수 없습니다.
코드
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int endday[8][2] = {{0, 0}, {5, 6}, {4, 5}, {3, 4}, {2, 3}, {1, 2}, {0, 1}, {6, 0}};
int solution(vector<int> schedules, vector<vector<int>> timelogs, int startday) {
int answer = 0;
for(int i = 0; i < schedules.size(); i++) {
int start = schedules[i];
if(start % 100 + 10 >= 60) {
start = start + 100 - 60 + 10;
} else {
start += 10;
}
vector<int> time = timelogs[i];
int count = 0;
for(int j = 0; j < 7; j++) {
if(endday[startday][0] == j || endday[startday][1] == j) {
continue;
} else if(time[j] <= start) {
count++;
}
}
if(count == 5) {
answer++;
}
}
return answer;
}
혹시라도 틀린 내용이 있다면 댓글로 지적해주시면 감사하겠습니다!!
'C++ 알고리즘 > DFS(깊이 우선 탐색)' 카테고리의 다른 글
[프로그래머스] 사라지는 발판 (2022 KAKAO BLIND RECRUITMENT) : Cpp (1) | 2025.05.06 |
---|---|
[프로그래머스] 양과 늑대 (2022 KAKAO Blind Recruitment) : Cpp (1) | 2024.11.14 |