Skip to content

Commit 203a1c6

Browse files
authored
Merge pull request #808 from river20s/main
[river20s] Week 4
2 parents 27ece99 + 0914b69 commit 203a1c6

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* public class ListNode {
4+
* int val;
5+
* ListNode next;
6+
* ListNode() {}
7+
* ListNode(int val) { this.val = val; }
8+
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
9+
* }
10+
*/
11+
class Solution {
12+
/*
13+
* [ํ’€์ด]
14+
* 1) ๋‘ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ด๋ฏธ ์ •๋ ฌ๋œ ์ƒํƒœ โ†’ ๋งจ ์•ž์—์„œ๋ถ€ํ„ฐ ๋‘˜ ์ค‘ ๋” ์ž‘์€ ๋…ธ๋“œ๋ฅผ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ rs์— ์ด์–ด ๋ถ™์ธ๋‹ค.
15+
* 2) ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. โ†’ ๋‚จ์€ ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋Š” ๊ทธ๋Œ€๋กœ rs์— ๋ถ™์ธ๋‹ค.
16+
* 3) rs ํ—ค๋“œ ๋…ธ๋“œ์˜ next๋ถ€ํ„ฐ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
17+
* [T.C]
18+
* ๊ฐ ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋น„๊ต โ†’ ์—ฐ๊ฒฐ(๋˜๋Š” ์—ฐ๊ฒฐ๋งŒ)ํ•˜๋ฏ€๋กœ,
19+
* T.C = O(n+m) (n = list1์˜ ๊ธธ์ด, m = list2์˜ ๊ธธ์ด)
20+
* [S.C]
21+
* list1๊ณผ list2์˜ ๋…ธ๋“œ๋ฅผ ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์€ ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ(rs์˜ head ์ •๋„?),
22+
* S.C = O(1)
23+
*/
24+
25+
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
26+
ListNode rs = new ListNode(0);
27+
ListNode rsNext = rs;
28+
// step 1
29+
while (list1 != null && list2 != null) {
30+
if (list1.val <= list2.val) {
31+
rsNext.next = list1;
32+
list1 = list1.next;
33+
}
34+
else {
35+
rsNext.next = list2;
36+
list2 = list2.next;
37+
}
38+
rsNext = rsNext.next;
39+
}
40+
// step 2
41+
if (list1 != null) rsNext.next = list1;
42+
if (list2 != null) rsNext.next = list2;
43+
// step3
44+
return rs.next;
45+
}
46+
}
47+

โ€Žmissing-number/river20s.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import java.util.Arrays;
2+
class Solution {
3+
/* [ํ’€์ด]
4+
* 1) ๋ฐฐ์—ด nums์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.
5+
* 2) ๋ฐฐ์—ด ์š”์†Œ์˜ ์ธ๋ฑ์Šค์™€ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
6+
* 2-1) ์ธ๋ฑ์Šค์™€ ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ํ•ด๋‹น ๊ฐ’์€ ๋ฐฐ์—ด์— ์žˆ๋‹ค.
7+
* 2-2) ์ธ๋ฑ์Šค์™€ ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค๋ฉด, ํ•ด๋‹น ๊ฐ’์€ ๋ฐฐ์—ด์— ์—†๋‹ค.
8+
* 3) ๋‹ค๋ฅธ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
9+
* [T.C]
10+
* ๋‚ด์žฅ๋œ Arrays.sort()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n log n)์ด ๋œ๋‹ค.
11+
* [S.C]
12+
* ์ตœ์•…์˜ ๊ฒฝ์šฐ Arrays.sort()๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ O(n) ๋งŒํผ์˜ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•œ๋‹ค.
13+
*/
14+
15+
public int missingNumber(int[] nums) {
16+
// nums ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
17+
Arrays.sort(nums);
18+
// ์ธ๋ฑ์Šค์™€ ์š”์†Œ ๋น„๊ต
19+
for (int i = 0; i < nums.length; i++) {
20+
if (nums[i] != i) {
21+
return i;
22+
}
23+
}
24+
// ๋ฐฐ์—ด์— ์—†๋Š” ๊ฐ’ ๋ฐ˜ํ™˜
25+
return nums.length
26+
}
27+
}
28+

0 commit comments

Comments
ย (0)