https://school.programmers.co.kr/learn/courses/30/lessons/120886
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 접근 방법
1. 해쉬맵을 선언해서 각 문자열의 문자, 등장횟수를 저장한다.
2. 해쉬맵을 비교하여 다르다면 0을 리턴하고, 전부 같다면 1을 리턴한다.
import java.util.*;
class Solution {
public int solution(String before, String after) {
Map<Character,Integer> m1 = new HashMap<>();
Map<Character,Integer> m2 = new HashMap<>();
for(int i = 0; i < before.length(); i++){
m1.put(before.charAt(i), m1.getOrDefault(before.charAt(i), 0) + 1);
m2.put(after.charAt(i), m2.getOrDefault(after.charAt(i) , 0) + 1);
}
for(char c : m1.keySet()) {
if (m1.get(c) != m2.get(c)) return 0;
}
return 1;
}
}
다른 사람 풀이
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;
}
}
먼저 char [] 배열로 변환하고 sorting해서 equals 연산을 하면 더 쉽게 가능하다...
'Algorithm > 프로그래머스 코딩테스트 문제풀이전략' 카테고리의 다른 글
[프로그래머스] Lv.1 완주하지 못한 선수 (0) | 2024.05.06 |
---|---|
[프로그래머스] Lv.1 없는 숫자 더하기 (0) | 2024.05.05 |
[프로그래머스] Lv.0 중복된 문자 제거 (0) | 2024.05.05 |
[프로그래머스] Lv.2 순위 검색 (0) | 2024.05.05 |
[프로그래머스] Lv.2 메뉴 리뉴얼 (0) | 2024.05.03 |