Skip to content

Commit 0ac068a

Browse files
author
jinvicky
committed
valid anagram solution
1 parent 03aecc1 commit 0ac068a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import java.util.Arrays;
2+
import java.util.HashMap;
3+
import java.util.Map;
4+
5+
class Solution {
6+
//์œ ํšจํ•œ ์• ๋„ˆ๊ทธ๋žจ์˜ ์กฐ๊ฑด์ด ๋ฌด์—‡์ผ๊นŒ?
7+
//1. a์™€ b์˜ ์•ŒํŒŒ๋ฒณ๋ณ„ ๋นˆ๋„์ˆ˜๊ฐ€ ์ •ํ™•ํžˆ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
8+
//2. ๋‹จ a์™€ b์˜ ์•ŒํŒŒ๋ฒณ ๊ตฌ์„ฑ ์ˆœ์„œ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
9+
10+
// map ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•ด์„œ s์˜ ์•ŒํŒŒ๋ฒณ ๋นˆ๋„์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ  ์ดํ›„ t๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ map์— ์กด์žฌํ•˜๋Š” ์•ŒํŒŒ๋ฒณ์ผ ๊ฒฝ์šฐ
11+
// 1. ๋นˆ๋„์ˆ˜๋ฅผ ๊นŽ๋Š”๋‹ค. 2. ๋นˆ๋„์ˆ˜๊ฐ€ 0์ผ ๊ฒฝ์šฐ map์—์„œ ์‚ญ์ œํ•œ๋‹ค.
12+
public boolean isAnagramByHashMap(String s, String t) {
13+
Map<Character, Integer> map = new HashMap<>();
14+
for (char c : s.toCharArray()) {
15+
map.put(c, map.getOrDefault(c, 0) + 1);
16+
}
17+
18+
for (char c : t.toCharArray()) {
19+
Integer v = map.get(c);
20+
21+
if (v == null)
22+
return false;
23+
24+
if (v - 1 == 0) {
25+
map.remove(c);
26+
} else
27+
map.put(c, v - 1);
28+
}
29+
return map.size() < 1;
30+
}
31+
32+
// ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋‹จ์ˆœํžˆ ๋‘ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜๊ณ  ๋ฌธ์ž์—ด ๋‚ด์šฉ ์ผ์น˜ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
33+
// ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ ์ฒ˜์Œ์—๋Š” ๋ฌด์กฐ๊ฑด ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ–ˆ์œผ๋‚˜,
34+
// ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด 1๋ฒˆ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๊ธธ์ด ๋น„๊ต ๋กœ์ง์„ ์ •๋ ฌ ์ „์— ์ถ”๊ฐ€ํ•จ์œผ๋กœ์„œ ์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋†’์˜€๋‹ค.
35+
public boolean isAnagram(String s, String t) {
36+
if (s.length() != t.length()) return false;
37+
char[] sChars = s.toCharArray();
38+
char[] tChars = t.toCharArray();
39+
40+
Arrays.sort(sChars);
41+
Arrays.sort(tChars);
42+
43+
return new String(sChars).equals(new String(tChars));
44+
}
45+
}

0 commit comments

Comments
ย (0)