728x90

- 모든 문자열에 들어있는 공통 문자를 배열로 반환

 

(입력)

["jeon", "new"]
["jeonabcj", "jeondej", "jeonfgj"]

 

(출력)

 

# HashMap 사용

import java.util.ArrayList;
import java.util.HashMap;

public class Main {

    private ArrayList<Character> solution(String[] words) {

        ArrayList<Character> result = new ArrayList<>();
        HashMap<Character, Integer> map = new HashMap<>();

        for(char c : words[0].toCharArray()) {
            map.put(c, map.getOrDefault(c, 0)+1);
        }

        for(int i=1; i<words.length; i++) {
            HashMap<Character, Integer> tmp = new HashMap<>();
            for(char c : words[i].toCharArray()) {
                if(map.getOrDefault(c, 0)>0) {
                    map.put(c, map.get(c)-1);
                    tmp.put(c, tmp.getOrDefault(c, 0)+1);
                }
            }
            map = new HashMap<Character, Integer>(tmp);
        }

        for(char key : map.keySet()) {
            for(int i=0; i<map.get(key); i++) {
                result.add(key);
            }
        }

        return result;
    }

    public static void main(String[] args) {
        Main T = new Main();
        String[] s = new String[]{"jeon", "new"};
        String[] s2 = new String[]{"jeonabcj", "jeondej", "jeonfgj"};
        System.out.println(T.solution(s)); // [e, n]
        System.out.println(T.solution(s2)); // [j, j, e, n, o]

    }
}

 

반응형

'전.java' 카테고리의 다른 글

[Java] 공부시간  (0) 2023.01.31
[Java] 가장 가까운 시간  (0) 2023.01.31
[Java] 음성인식  (0) 2023.01.30
[Java] 팰린드롬 길이  (0) 2023.01.30
[Java] 같은 빈도수 만들기  (1) 2023.01.30
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기