2023. 10. 22. 20:53ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1227
-> ์ด์ ๋ฌธ์ ํ์ด
2. ์๋๊ทธ๋จ
์ค๋ช
Anagram์ด๋ ๋ ๋ฌธ์์ด์ด ์ํ๋ฒณ์ ๋์ด ์์๋ฅผ ๋ค๋ฅด์ง๋ง ๊ทธ ๊ตฌ์ฑ์ด ์ผ์นํ๋ฉด ๋ ๋จ์ด๋ ์๋๊ทธ๋จ์ด๋ผ๊ณ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด AbaAeCe ์ baeeACA ๋ ์ํ๋ฒณ์ ๋์ด ์์๋ ๋ค๋ฅด์ง๋ง ๊ทธ ๊ตฌ์ฑ์ ์ดํด๋ณด๋ฉด A(2), a(1), b(1), C(1), e(2)๋ก
์ํ๋ฒณ๊ณผ ๊ทธ ๊ฐ์๊ฐ ๋ชจ๋ ์ผ์นํฉ๋๋ค. ์ฆ ์ด๋ ํ ๋จ์ด๋ฅผ ์ฌ ๋ฐฐ์ดํ๋ฉด ์๋ํธ ๋จ์ด๊ฐ ๋ ์ ์๋ ๊ฒ์ ์๋๊ทธ๋จ์ด๋ผ ํฉ๋๋ค.
๊ธธ์ด๊ฐ ๊ฐ์ ๋ ๊ฐ์ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด ๋ ๋จ์ด๊ฐ ์๋๊ทธ๋จ์ธ์ง ํ๋ณํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์๋๊ทธ๋จ ํ๋ณ์ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ถ๋ฉ๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ์ฒซ ๋ฒ์งธ ๋จ์ด๊ฐ ์ ๋ ฅ๋๊ณ , ๋ ๋ฒ์งธ ์ค์ ๋ ๋ฒ์งธ ๋จ์ด๊ฐ ์ ๋ ฅ๋ฉ๋๋ค.
๋จ์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์์ต๋๋ค.
์ถ๋ ฅ
๋ ๋จ์ด๊ฐ ์๋๊ทธ๋จ์ด๋ฉด “YES"๋ฅผ ์ถ๋ ฅํ๊ณ , ์๋๋ฉด ”NO"๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์์ ์ ๋ ฅ 1
AbaAeCe
baeeACA
์์ ์ถ๋ ฅ 1
YES
์์ ์ ๋ ฅ 2
abaCC
Caaab
์์ ์ถ๋ ฅ 2
NO
๋ฌธ์ ํ์ด 1
public String solution(String a, String b) {
String answer = "YES";
Map<Character, Integer> mapA = new HashMap<>();
Map<Character, Integer> mapB = new HashMap<>();
for (char c : a.toCharArray()) {
mapA.put(c, mapA.getOrDefault(c, 0) + 1);
}
for (char c : b.toCharArray()) {
mapB.put(c, mapB.getOrDefault(c, 0) + 1);
}
for (Character x : mapA.keySet()) {
if (mapA.get(x) != mapB.get(x)) {
return "NO";
}
}
return answer;
}
๐ฉ๐ป๐ป : ๋๋ ๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ HashMap 2๊ฐ๋ฅผ ๋ง๋ค๊ณ ๋ฌธ์์ด a, b ๋ฅผ ๊ฐ๊ฐ Character ๋ฅผ Key ๋ก ํ๊ณ ๊ทธ ๊ฐ์๋ฅผ ๊ตฌํด์คฌ๋ค.
๋ค์ mapA์ key ๊ฐ์ ๊ฐ์ง๊ณ mapB์ key ๊ฐ์ get ํด์ ๋ค๋ฅด๋ฉด NO ๋ฅผ ๋ฆฌํดํ๋๋ก ํ๋ค.
(์ฌ์ค Key ๊ฐ์ด ์์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์๋๋ฐ ์ ๋ต ๋์์ ์ด๊ฒ ๋๋..? ์ถ๊ธด ํ๋ค.)
๋ฌธ์ ํ์ด 2
public String solution2(String s1, String s2) {
String answer = "YES";
HashMap<Character, Integer> map = new HashMap<>();
for (char x : s1.toCharArray()) {
map.put(x, map.getOrDefault(x, 0) + 1);
}
for (char x : s2.toCharArray()) {
if (!map.containsKey(x) || map.get(x) == 0) {
return "NO";
}
map.put(x, map.get(x) - 1);
}
return answer;
}
๐พ : ๊ฐ์ฌ๋์ ๋ฌธ์ ๋ฅผ ๋ ๊ฐ๋จํ๊ฒ ํ์๋ค. ์ฐ์ Map์ ํ๋๋ง ์ฌ์ฉํด์ s1 ๋ฌธ์์ด์์ Character๋ฅผ key๋ก ์ก๊ณ ๊ทธ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ๊ตฌํ๊ธด ํ๋ค. (์ฌ๊ธฐ๊น์ง๋ ๋์ผ), ๊ทธ ๋ค์์ s2๋ Character๋ก ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ง๋ ๋ค์, ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋๋ฐ ์ฐ์ map์ ํด๋น ๋ฌธ์๊ฐ ์๋์ง ์ฆ, key ๊ฐ์ด ์กด์ฌํ๋์ง containsKey ๋ฉ์๋๋ก ํ์ธํด์ ์๊ฑฐ๋ ํน์ map.get(x) ํ๋๋ฐ ์ด๋ฏธ ๋ฌธ์๋ฐฐ์ด์ ๊ฐ์๊ฐ 0 ์ด๋ผ๋ ๊ฑด ๋ฌธ์ ๊ฐ์๊ฐ ๋ง์ง ์๋ค๋ ์๋ฏธ์ด๋ฏ๋ก return NO๋ฅผ ํด์คฌ๋ค.
๋ง์ฝ key ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด map์์ put๋ฅผ ํ๋๋ฐ ํด๋น key ๊ฐ์ ๊ฐ์๋ฅผ ๊ฐ์ ธ์์ -1 ํด์ค๋ค.
๊ตณ์ด Map์ ๋๊ฐ ์๋ง๋ค๊ณ ํ ์ ์์๋๋ฐ..!! ๋๋ ๊ตณ์ด ๋๊ฐ ๋ง๋ค์ด์ ๋น๊ตํ๋ ๊ฒ ๊ฐ๋ค..