From 62f66639129bd0029128141e39a11d4681ef4ea9 Mon Sep 17 00:00:00 2001 From: Yooncheol_Oh Date: Wed, 18 Dec 2024 19:31:50 +0900 Subject: [PATCH] valid anagram solution --- valid-anagram/5YoonCheol.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 valid-anagram/5YoonCheol.java diff --git a/valid-anagram/5YoonCheol.java b/valid-anagram/5YoonCheol.java new file mode 100644 index 000000000..7db4180d8 --- /dev/null +++ b/valid-anagram/5YoonCheol.java @@ -0,0 +1,29 @@ +import java.util.HashMap; + +public class Solution { + public boolean isAnagram(String s, String t) { + //HashMap 자료구조를 통해 아나그램 여부 판별 + //s,t 문자열에서 문자인 것만 HashMap에 넣어준다. + //이때 중복인 경우 value 값을 1씩 증가시킨다. + //Character 타입의 개수가 맞지 않으면 false + //두 개의 Map이 서로 동일하면 아나그램이다. -> true + //그 외의 경우는 Character의 개수가 맞지 않기 때문에 false + HashMap sMap = new HashMap<>(); + HashMap tMap = new HashMap<>(); + for (Character c : s.toCharArray()) { + if (Character.isLetter(c)) { + sMap.put(c, sMap.getOrDefault(c, 0) + 1); + } + } + + for (Character c : t.toCharArray()) { + if (Character.isLetter(c)) { + tMap.put(c, tMap.getOrDefault(c, 0) + 1); + } + } + + if (sMap.size() != tMap.size()) return false; + else if (sMap.equals(tMap)) return true; + else return false; + } +}