Skip to content

Commit 315bcb6

Browse files
authored
Merge pull request #2012 from hyunolike/main
[hyunolike] WEEK 01 solutions
2 parents 2942ddc + a007790 commit 315bcb6

File tree

5 files changed

+108
-0
lines changed

5 files changed

+108
-0
lines changed

contains-duplicate/hyunolike.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public boolean containsDuplicate(int[] nums) {
3+
// 중복 체크
4+
// 각 요소 순환
5+
6+
// 1. 배열 순환
7+
// 2. 2 이상 true 체크
8+
9+
// 자료구조 Map 사용
10+
HashMap<Integer, Integer> map = new HashMap<>();
11+
12+
for (int num : nums) {
13+
//System.out.println(num);
14+
if (map.containsKey(num)) {
15+
return true;
16+
}
17+
18+
map.put(Integer.valueOf(num), Integer.valueOf(num));
19+
}
20+
21+
return false;
22+
}
23+
}

house-robber/hyunolike.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public int rob(int[] nums) {
3+
if (nums.length == 0) return 0;
4+
5+
int prev1 = 0;
6+
int prev2 = 0;
7+
for(int num : nums) {
8+
int tmp = prev1;
9+
prev1 = Math.max(prev2 + num, prev1);
10+
prev2 = tmp;
11+
}
12+
return prev1;
13+
}
14+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution {
2+
public int longestConsecutive(int[] nums) {
3+
// 연속된 숫자 길이 파악
4+
// 연속된 거 어떻게?
5+
if(nums.length == 0 || nums == null) return 0;
6+
7+
int result = 0;
8+
9+
Arrays.sort(nums);
10+
11+
int maxLen = 1;
12+
int len = 1;
13+
14+
for(int i = 1; i < nums.length; i++) {
15+
// 중복 체크
16+
if(nums[i] == nums[i-1]) {
17+
continue;
18+
}else if(nums[i] == nums[i-1] + 1) {
19+
len++;
20+
maxLen = Math.max(maxLen, len);
21+
}else{
22+
len = 1;
23+
}
24+
}
25+
26+
return maxLen;
27+
}
28+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public int[] topKFrequent(int[] nums, int k) {
3+
Map<Integer, Integer> counter = new HashMap<>();
4+
for (int n : nums) {
5+
counter.put(n, counter.getOrDefault(n, 0) + 1);
6+
}
7+
8+
PriorityQueue<Map.Entry<Integer, Integer>> heap = new PriorityQueue<>(
9+
(a, b) -> Integer.compare(b.getValue(), a.getValue())
10+
);
11+
12+
for (Map.Entry<Integer, Integer> entry : counter.entrySet()) {
13+
heap.offer(entry);
14+
}
15+
16+
int[] res = new int[k];
17+
for(int i = 0; i < k; i++) {
18+
res[i] = Objects.requireNonNull(heap.poll()).getKey();
19+
}
20+
21+
return res;
22+
}
23+
}

two-sum/hyunolike.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public int[] twoSum(int[] nums, int target) {
3+
// 모든 경우의 수 체크
4+
5+
// 결과값
6+
int[] result = null;
7+
8+
// 순회
9+
for(int i = 0; i < nums.length; i++){
10+
for(int j = i+1; j < nums.length; j++) {
11+
int sum = nums[i] + nums[j];
12+
if(sum == target) {
13+
result = new int[]{i, j};
14+
}
15+
}
16+
}
17+
18+
return result;
19+
}
20+
}

0 commit comments

Comments
 (0)