MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

🏃‍♀️programmers/Java

˚₊✩‧₊ 프로그래머스 java - A로 B 만들기 ˚₊✩‧₊

HYEJU01 2024. 6. 12. 15:36
체감 Level : ★ ★  
Review: 정렬 생각을 못해서 헤맸다 🥹🥹🥹

 

💡문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return

https://school.programmers.co.kr/learn/courses/30/lessons/120886

 

 

추가하면 푸는데 도움되는 테스트케이스 !

 

[참고]

 

1) 두 String 을 문자 배열로 변환

2) 두개 다 오름차순으로 정렬

String(a) << 문자배열을 String 에 넣으면 문자열로 자동 변환됨

3) 문자열 비교

 

import java.util.Arrays;
class Solution {
    public int solution(String before, String after) {
        char[] a = before.toCharArray();
        char[] b = after.toCharArray();
        Arrays.sort(a);
        Arrays.sort(b);

        return new String(a).equals(new String(b)) ? 1 :0;
    }
}

 

 

[실패] 초반에 문제가 헷갈려서 고민하다가.. 해쉬맵을 사용해볼까했는데 실패했다.

import java.util.HashMap;
class Solution {
    public int solution(String before, String after) {
        int answer = 1;
        String str = "";
        String str1 = "";
        int cnt = 0;
        //배열에 넣어서 카운팅
        //해쉬맵 키,값 ++ 
        
        HashMap<String,Integer> m = new HashMap<>(); 
        //int cnt[] = new int[before.length()];
        
        //해쉬맵에 넣기
        for(int i = 0 ; i < before.length(); i++){
            str = before.substring(i,i+1);
            
            m.put(str,0);
        }

        for(int i = 0 ; i < after.length(); i++){
            str1 = after.substring(i,i+1);
                if(m.put(str1,1) != null){
                    m.put(str1,m.get(str1)++);
                }
        }
    
        for(int i = 0 ; i < before.length(); i++){
            str = before.substring(i,i+1);
            if (m.get(str)){

            }
        }

        return 1;
    }
}