[Programmers / Level 1] 388351. 유연근무제 (Java)

이하얀·5일 전
0

🕊️ 프로그래머스

목록 보기
97/97

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 출근 희망 시각 및 실제 출근 기록을 통해 실제로 상품을 받는 직원 수를 반환하면 되는 문제


알고리즘


풀이 시간 : 35분

  • 출근 희망 시각에 10분을 더한 시각 계산
    • 10분 더하기
  • 출근 시각 확인
    • 7일 : 출근 시각 확인
    • startday부터 7일간 요일 계산
    • 토요일(5), 일요일(6) 제외
    • 출근 시각이 설정된 시간에 +10분을 더한 시간보다 늦으면 상품을 못 받음
import java.util.*;

public class Solution {
    public int solution(int[] schedules, int[][] timelogs, int startday) {
        int answer = 0;

        int[] endTimes = new int[schedules.length];
        for (int i = 0; i < schedules.length; i++) {
            int hour = schedules[i] / 100;
            int minute = schedules[i] % 100;
            int newTime = (hour * 100 + minute + 10);
            if (newTime % 100 >= 60) {
                newTime += 40;
            }
            endTimes[i] = newTime;
        }

        for (int i = 0; i < timelogs.length; i++) {
            boolean isEligible = true;
            for (int j = 0; j < 7; j++) {
                int actualDay = (startday + j - 1) % 7;
                if (actualDay == 5 || actualDay == 6) {
                    continue;
                }

                if (timelogs[i][j] > endTimes[i]) {
                    isEligible = false;
                    break;
                }
            }

            if (isEligible) {
                answer++;
            }
        }
        
        return answer;
    }
}


결과


profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글

관련 채용 정보