본문 바로가기
알고리즘/프로그래머스

(프로그래머스/자바) 힌트문제2 01. 해시테이블 - 프로그래머스 : 한 번만 등장한 문자

by son_i 2023. 7. 25.
728x90

코딩테스트 연습 - 한 번만 등장한 문자 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

해시테이블을 이용한 문제라고 알려주셔서 여기에 처음에 문자열을 찢어서 저장하려고 했는데

그러면 중복된 문자열이어도 최초 한 번은 저장을 하게 된다.

그래서 Hashtable의 gerOrdefault 메소드 사용해서 해당 문자열을 키값으로 두고 나온 횟수를 value에 저장.

value값이 1인 key만 list에 저장하고 list를 정렬하여 완성했다.

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;
import java.util.Map;

public class Hashtable_01 {
    public static String solution(String s) {
        String answer = "";
        Hashtable <String,Integer> ht = new Hashtable<>();
        ArrayList <String> list = new ArrayList<>();
        for(String str : s.split("")) {
            ht.put(str,ht.getOrDefault(str, 0 ) + 1);
        }
        for(Map.Entry<String, Integer> map : ht.entrySet()){
            if(map.getValue() == 1){
                list.add(map.getKey());
            }
        }
        Collections.sort(list);
        answer = String.join("",list);
        return answer;
    }
    public static void main(String args[]){
        System.out.println(solution("abcabcadc"));
    }
}