Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions leetcode3/이진희/1124. Longest Well-Performing Interval.java
Original file line number Diff line number Diff line change
@@ -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; i<hours.length; i++) {
int hour = hours[i];

if(hour>8) 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;
}
}
34 changes: 34 additions & 0 deletions leetcode3/이진희/2239. Find Closest Number to Zero.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
Loading