Skip to content

Commit 8215351

Browse files
committed
Solve: valid-anagram
1 parent 1ee09cc commit 8215351

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

โ€Žvalid-anagram/hj4645.ktโ€Ž

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
// t๊ฐ€ s์˜ ์ฒ ์ž๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์• ๋„ˆ๊ทธ๋žจ์ธ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ
3+
// ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€
4+
// 1. ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์„œ sort ํ•ด์„œ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•
5+
// 2. ์ •๋ ฌํ•˜์ง€ ์•Š๊ณ  mutableMap์œผ๋กœ ๋งต์„ ๋งŒ๋“ค์–ด ํ‘ธ๋Š” ๋ฐฉ๋ฒ•
6+
// 2๋ฒˆ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.
7+
fun isAnagram(s: String, t: String): Boolean {
8+
//์šฐ์„  ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‘ String์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋ฐ”๋กœ false๋ฅผ ๋ฐ˜ํ™˜
9+
if(s.length != t.length) false
10+
11+
// s์˜ ๋ฌธ์ž์—ด์„ ์นด์šดํŠธํ•˜๋ฉด์„œ ์ €์žฅํ•  ๊ฐ€๋ณ€๋ฐฐ์—ด์„ ์„ ์–ธํ•ด์ค€๋‹ค.
12+
val countMap = mutableMapOf<Char, Int>()
13+
14+
// s์— ์žˆ๋Š” ๊ฐ๊ฐ์˜ ๋ฌธ์ž๋“ค์— ๋Œ€ํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ ์ถœํ˜„ํšŸ์ˆ˜๋ฅผ ๋งต์œผ๋กœ ๊ตฌ์„ฑ
15+
for(c in s){
16+
countMap[c] = countMap.getOrDefault(c, 0) + 1
17+
}
18+
19+
// ์ด์ œ t์˜ ๋ฌธ์ž๋“ค์ด ์•„๊นŒ ๋งŒ๋“ค์–ด์ง„ countMap์— ๋ชจ๋‘ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
20+
for(c in t){
21+
val count = countMap.getOrDefault(c, 0)
22+
if (count == 0) return false
23+
countMap[c] = count - 1
24+
}
25+
// countMap์— ๋“ค์–ด์žˆ๋Š” value๊ฐ€ ์ „๋ถ€ 0์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜
26+
return countMap.values.all { it == 0 }
27+
}
28+
}
29+

0 commit comments

Comments
ย (0)