-
[프로그래머스] 유연근무제 자바코딩테스트 2025. 3. 24. 19:09반응형
https://school.programmers.co.kr/learn/courses/30/lessons/388351
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
여러 방법을 시도 해보았는데, 주말을 기준에서 제외하기 위해 토요일과 일요일의 인덱스를 도출하는 것이 어려웠다.
한참을 헤메다 결국 다른 분들의 소스를 참고하여 해결하였다.
두 출처에서 각각 토요일과 일요일을
1. (startday + j) % 7 > 0 && (startday + j) % 7 < 6 2. !(idx == 6 - startDay % 7 || idx == 7 - startDay)
의 방식으로 처리할 수 있다는 점을 배울 수 있었다.
//방법1 public int solution(int[] schedules, int[][] timelogs, int startday) { int answer = schedules.length; for(int i = 0; i < schedules.length; i++){ for(int j = 0; j < 7; j++){ boolean isOverTime = 60 * ( timelogs[i][j] / 100 ) + timelogs[i][j] % 100 > 60 * ( schedules[i]/100 ) + schedules[i] % 100 + 10; if((startday + j) % 7 > 0 && (startday + j) % 7 < 6 && isOverTime) { answer --; break; } } } return answer; } //방법2 > 프로그래머스 다른사람 답안 > 홍희표 //import java.util.stream.IntStream; 필요 public int otherSolution(int[] schedules, int[][] timeLogs, int startDay) { return (int) IntStream.range(0, timeLogs.length) .filter(i -> IntStream.range(0, timeLogs[i].length) .filter(idx -> timeLogs[i][idx] > (schedules[i] + ((schedules[i] % 100 > 49) ? 50 : 10)) && !(idx == 6 - startDay % 7 || idx == 7 - startDay) ).findAny().isEmpty()) .count(); }
참고:
[프로그래머스] 유연근무제 (Java)
https://school.programmers.co.kr/learn/courses/30/lessons/388351각각의 직원에 대해 상품 수령 여부를 알아야 하고, 각 직원이 7일동안 출근한 시간이 주어진다.토요일과 일요일의 출근 시간은 고려하지 않는다
velog.io
https://school.programmers.co.kr/learn/courses/30/lessons/388351/solution_groups?language=java
> 홍희표
반응형'코딩테스트' 카테고리의 다른 글
[프로그래머스] 가장 많이 받은 선물 자바 (0) 2025.03.27 [프로그래머스] [PCCE 기출문제] 10번 / 공원 (0) 2025.03.26 [프로그래머스] [PCCE 기출문제] 9번 / 지폐 접기 자바 (0) 2025.03.25 [프로그래머스] 동영상재생기 자바 (0) 2025.03.25 JAVA 택배상자꺼내기 (1) 2025.03.24