Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

UpDown Dev Story

아나그램 (HashMap) 본문

Algorithm

아나그램 (HashMap)

updown 2021. 7. 5. 23:25

아래 강의를 보면서 연습하고 기록하고 있습니다

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

문제

내 코드

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String inputText1 = sc.next();
		String inputText2 = sc.next();

		System.out.println(inputText1);
		System.out.println(inputText2);

		Map<Character, Integer> map1 = new HashMap<>();
		for (char c : inputText1.toCharArray()) {
			map1.put(c, map1.getOrDefault(c, 0) + 1);
		}

		Map<Character, Integer> map2 = new HashMap<>();
		for (char c : inputText2.toCharArray()) {
			map2.put(c, map2.getOrDefault(c, 0) + 1);
		}

		String returnValue = "YES";
		for (Character character : map1.keySet()) {
			if(!map1.get(character).equals(map2.get(character))){
				returnValue = "NO";
			}
		}

		System.out.println(returnValue);


	}
}

강사님 코드

import java.util.*;
class Main {	
	public String solution(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;
	}

	public static void main(String[] args){
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String a=kb.next();
		String b=kb.next();
		System.out.print(T.solution(a, b));
	}
}
Comments