[JAVA 문제 풀이] 319. 유연근무제

프로그래머스 (388351)
Stupefyee's avatar
Jun 16, 2025
[JAVA 문제 풀이] 319. 유연근무제
notion image
 

내가 작성한 코드

class Solution { public int solution(int[] schedules, int[][] timelogs, int startday) { int answer = 0; for (int i = 0; i < schedules.length; i++) { int temp = startday; boolean isLate = false; // 지각 여부 for (int j = 0; j < timelogs[i].length; j++) { // 토요일 넘기기 if (temp == 6) { temp++; continue; } // 일요일 넘기고 월요일로 if (temp == 7) { temp = 1; continue; } int result = getWorkTime(schedules[i]); // 출근시간 계산 // 지각 여부 확인 if (result < timelogs[i][j]) { isLate = true; break; } temp++; } if (!isLate) { answer++; } } return answer; } // 출근시간 계산 메서드 private int getWorkTime(int i) { int time = i; int hour = time / 100; int minute = time % 100; minute += 10; hour += minute / 60; minute = minute % 60; int result = hour * 100 + minute; return result; } }
 

다른 사람의 코드

class Solution { public int solution(int[] schedules, int[][] timelogs, int startday) { int answer = 0; for (int i = 0; i < schedules.length; i++) { int x = 0; // 평일 출근 횟수 for (int j = 0; j < 7; j++) { // 주말 건너 뛰기 if (startday % 7 == 6 || startday % 7 == 0) { } else { // 평일 출근 시간 체크 if (cal(timelogs[i][j]) - (cal(schedules[i]) + 10) <= 0) { x++; } } startday++; } if (x == 5) { answer++; } } return answer; } // 시간 계산 메서드 public int cal(int time) { int x = time / 100; int y = time % 100; return x * 60 + y; } }
 
Share article

stupefyee