Closed juni8453 closed 2 years ago
🏋️♀️ 시도횟수 : 2회 | ⏱ 걸린시간 : 143ms | 💾 메모리 : 26MB
시도횟수
걸린시간
메모리
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); String t = br.readLine(); int answer = solution(s, t); System.out.println(answer); } private static int solution(String s, String t) { int count = 0; int lt = 0; int rt = t.length() - 1; Map<Character, Integer> aMap = new HashMap<>(); Map<Character, Integer> bMap = new HashMap<>(); for (char x : t.toCharArray()) { bMap.put(x, bMap.getOrDefault(x, 0) + 1); } for (int i = 0; i < rt; i++) { aMap.put(s.charAt(i), aMap.getOrDefault(s.charAt(i), 0) + 1); } for (int i = rt; i < s.length(); i++) { aMap.put(s.charAt(i), aMap.getOrDefault(s.charAt(i), 0) + 1); if (aMap.equals(bMap)) { count ++; } aMap.put(s.charAt(lt), aMap.get(s.charAt(lt)) - 1); if (aMap.get(s.charAt(lt)) == 0) { aMap.remove(s.charAt(lt)); } lt ++; } return count; } } /* T 단어에 S 문자열과 아나그램이 되는 부분 문자열의 개수는 ? * 아나그램 판별 시 대 소문자가 구분됩니다. * S (bacAacba) / T (abc) * {b a c} {a c b} {c b a} * output = 3 * */
📌 문제
⭐️ 아이디어
🤔 고민한 내용
💪 새롭게 배운 내용
🆘 이해가 어려운 내용
❌ 해결하지 못한 이유
✅ 본인 풀이
🏋️♀️
시도횟수
: 2회 | ⏱걸린시간
: 143ms | 💾메모리
: 26MB참고한 자료