diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/1124. Longest Well-Performing Interval.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/1124. Longest Well-Performing Interval.java" new file mode 100644 index 00000000..3e27bc6f --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/1124. Longest Well-Performing Interval.java" @@ -0,0 +1,50 @@ +/* +1. 아이디어: + - 연속적으로 8시간 이상 일한날이 많은구간의 최대 길이 구하기 + - 완전탐색을 통해, 8시간 기준날을 체크해서 8시간 일한 날이 더 많으면 갱신 + - 더 적으면 뒤로 돌아가면서 연속구간 재갱신 + +2. 시간복잡도: O(N^2) + +3. 자료구조/알고리즘: 완전탐색, 누적합 +*/ + +class Solution { + public int longestWPI(int[] hours) { + // 9시간 이상 일하면 지침 + + // 근데 피곤한 날이 피곤하지 않은 날보다 많아야 well-performing + + // 최대 구간 길이 구하기 + + int over = 0; + int good = 0; + int ans = 0; + + for(int i=0; i8) over++; + else good++; + + // 일한날이 더 많음 + if(over > good) ans = i+1; + else { + int tmpOver = over; + int tmpGood = good; + + for(int j=0; j<=i; j++) { + if(hours[j] > 8) tmpOver--; + else tmpGood--; + + if(tmpGood < tmpOver) { + ans = Math.max(ans, i-j); + break; + } + } + } + } + + return ans; + } +} \ No newline at end of file diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/2239. Find Closest Number to Zero.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/2239. Find Closest Number to Zero.java" new file mode 100644 index 00000000..160436d6 --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/2239. Find Closest Number to Zero.java" @@ -0,0 +1,34 @@ +/* + +1. 아이디어 : 절댓값이 제일작은 값 구하기 + 절댓값이 같으면 양수가 답 + +2. 시간복잡도 : O(N) + +3. 자료구조/알고리즘 : 완전탐색 + + */ + +class Solution { + public int findClosestNumber(int[] nums) { + // 0과 가장 가까운수 + // 절댓값이 같다면 더 큰 수 + + int ans = 0; + int diff = 1000000; + + for(int i : nums) { + int abs = Math.abs(i); + + if(abs < diff) { + diff = abs; + ans = i; + } + else if(diff == abs) { + if(i>ans) ans = i; + } + } + + return ans; + } +} \ No newline at end of file