Skip to content

Commit 01edee7

Browse files
authored
Merge pull request #1910 from youngduck/main
[youngduckl] WEEK 09 solutions
2 parents d01d956 + 6d0c7f4 commit 01edee7

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* function ListNode(val) {
4+
* this.val = val;
5+
* this.next = null;
6+
* }
7+
*/
8+
9+
/**
10+
* @param {ListNode} head
11+
* @return {boolean}
12+
*/
13+
var hasCycle = function (head) {
14+
// ์ˆœํ™˜ํƒ์ง€ ๊ธฐ๋ฒ•
15+
// 1. ํ”Œ๋กœ์ด๋“œ ํ† ๋ผ์™€ ๊ฑฐ๋ถ์ด (ํฌ์ธํ„ฐ2๊ฐœ)
16+
// 2. ์ง‘ํ•ฉ์„ ํ†ตํ•œ ์ค‘๋ณต๊ฒ€์‚ฌ
17+
18+
////////ํ’€์ด///////
19+
20+
// ๋…ธ๋“œ 0๊ฐœ 1๊ฐœ๋ฉด ์ˆœํ™˜๋ถˆ๊ฐ€
21+
22+
if (!head || !head.next) {
23+
return false;
24+
}
25+
26+
// ํ† ๋ผ, ๊ฑฐ๋ถ์ด ์„ค์ •
27+
let slow = head;
28+
let fast = head.next;
29+
30+
while (slow !== fast) {
31+
// ๋‘์นธ์ „์ง„์‹œ ๋…ธ๋“œ ์กด์žฌ ์ฒดํฌ
32+
if (!fast || !fast.next) {
33+
return false;
34+
}
35+
36+
slow = slow.next;
37+
fast = fast.next.next;
38+
}
39+
40+
return true;
41+
};
42+
43+
// ์‹œ๊ฐ„๋ณต์žก๋„ O(n) -> ์ตœ๋Œ€ ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ ์ˆ˜ ๋งŒํผ while๋ฌธ์ด ๋ฐ˜๋ณต๋˜๋ฏ€๋กœ
44+
// ๊ณต๊ฐ„๋ณต์žก๋„ O(1) -> ํ† ๋ผ, ๊ฑฐ๋ถ์ด ํฌ์ธํ„ฐ 2๊ฐœ๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ

0 commit comments

Comments
ย (0)