Skip to content

Commit 2922419

Browse files
authored
Merge pull request #2082 from acious/main
[acious] WEEK 03 solutions
2 parents 11add93 + 946129e commit 2922419

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

โ€Žmaximum-subarray/acious.ktโ€Ž

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
fun maxSubArray(nums: IntArray): Int {
3+
var maxSum = nums[0]
4+
var sum = 0
5+
6+
for(num in nums) {
7+
sum = max(sum+num, num)
8+
maxSum = max(sum, maxSum)
9+
}
10+
11+
return maxSum
12+
}
13+
}

โ€Žnumber-of-1-bits/acious.ktโ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
fun hammingWeight(n: Int): Int {
3+
// 2^31 = 1,073,741,823
4+
// ๋ชซ : dividend
5+
// ํ•œํ…€๋‹น n์„ 2๋กœ ๋‚˜๋ˆ ์„œ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด๋ƒ„. ๋‚˜๋จธ์ง€๊ฐ€ 1์ด๋ฉด result์— +=1, ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด result์— ๋ณ€ํ™”์—†์Œ.
6+
// ๋ชซ์ด 0์œผ๋กœ ๋–จ์–ด์ง€๋ฉด ์—ฐ์‚ฐ์ด ๋๋‚˜๊ณ  result ๋ฐ˜ํ™˜
7+
// ์‹œ๊ฐ„ ๋ณต์žก๋„ : n์ด ์ตœ๋Œ€ 2^31์ด๊ณ  n์ด ์ปค์ง์— ๋”ฐ๋ผ ์ตœ๋Œ€ 31๋ฒˆ ๋ฐ˜๋ณต๋ฌธ์ด ๋„๋ฏ€๋กœ O(1)
8+
// ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
9+
var dividend = n
10+
var result = 0
11+
while (dividend != 0) {
12+
if (dividend % 2 == 1) {
13+
result+=1
14+
}
15+
dividend = dividend/2
16+
}
17+
return result
18+
}
19+
}

โ€Žvalid-palindrome/acious.ktโ€Ž

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Solution {
2+
fun isPalindrome(s: String): Boolean {
3+
// ๋ฌธ์žฅ์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 20๋งŒ
4+
// ๋ฌธ์ž์—ด์ด ๊ณต๋ฐฑ์ด๋ฉด return true
5+
// for-loop ํ•œํ„ด์— ์–‘์ชฝ ๋์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘. ์–‘์ชฝ index๊ฐ€ ์„œ๋กœ ๊ต์ฐจ๋˜๋ฉด return true
6+
// ๊ฐ๊ฐ char์ด alphanumeric์ด ์•„๋‹ˆ๋ฉด ํ•œ์นธ ๋”์ด๋™.
7+
// ์˜๋ฌธ ๋Œ€๋ฌธ์ž๋ฉด ์˜๋ฌธ ์†Œ๋ฌธ์ž๋กœ ์น˜ํ™˜.
8+
// - ์–‘์ชฝ ๋์˜ char๋ฅผ ๋น„๊ตํ•ด์„œ ๊ฐ™์œผ๋ฉด ์–‘์ชฝ index๋ฅผ ์ด๋™์‹œํ‚ด.
9+
// - ์–‘์ชฝ ๋์˜ char๋ฅผ ๋น„๊ตํ•ด์„œ ๊ฐ™์ง€์•Š์œผ๋ฉด return false
10+
// ์‹œ๊ฐ„๋ณต์žก๋„ : O(n/2)
11+
// ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
12+
if (s.isEmpty()) {
13+
return true
14+
}
15+
16+
var left = 0
17+
var right = s.length - 1
18+
19+
while (left <= right) { // ์„œ๋กœ ๊ต์ฐจํ•˜๊ธฐ ์ „๊นŒ์ง€๋งŒ ๋น„๊ตํ•˜๋ฉด ๋จ (<= ๋Œ€์‹  < ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
20+
21+
// 1. Char๊ฐ€ ์˜๋ฌธ์ž๋‚˜ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ์ง€ ํ™•์ธ
22+
if (!s[left].isLetterOrDigit()) {
23+
left += 1
24+
continue
25+
}
26+
27+
if (!s[right].isLetterOrDigit()) {
28+
right -= 1
29+
continue
30+
}
31+
32+
// 2. ๋Œ€์†Œ๋ฌธ์ž ํ†ต์ผ ํ›„ ๋น„๊ต
33+
if (s[left].lowercaseChar() != s[right].lowercaseChar()) {
34+
return false
35+
} else {
36+
left += 1
37+
right -= 1
38+
}
39+
}
40+
41+
return true
42+
}
43+
}

0 commit comments

Comments
ย (0)