🧩 BE
home

388351_유연근무제

담당자
완료 여부
Solved
요약
날짜
2025/04/07
태그
구현
난이도
Lv1
출처
프로그래머스
직원들 각자가 설정한 시간대로 평일 모두 시간을 지켜 출근한 직원의 수를 구하는 문제.
다른건 그냥 조건 넣으면서 무난하게 풀었는데, (startday + j - 1) % 7 + 1 이 부분에서 요일을 숫자로 맞춰주고 1~5인 요일만 구하는 부분에서 좀 헷갈렸다.
import java.util.*; class Solution { public int solution(int[] schedules, int[][] timelogs, int startday) { int n = schedules.length; int count = 0; for (int i = 0; i < n; i++) { int hope = schedules[i]; int latest = addTen(hope); boolean ok = true; for (int j = 0; j < 7; j++) { int day = (startday + j - 1) % 7 + 1; // 요일 (1 ~ 7) if (day >= 6) continue; // 토/일 스킵 int actual = timelogs[i][j]; if (actual > latest) { ok = false; break; } } if (ok) count++; } return count; } // 희망 시각 + 10분을 처리 private int addTen(int time) { int h = time / 100; int m = time % 100; m += 10; if (m >= 60) { h++; m -= 60; } return h * 100 + m; } }
Java
복사