728x90
코딩테스트 연습 - 한 번만 등장한 문자 | 프로그래머스 스쿨 (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"));
}
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(프로그래머스/자바) 힌트문제2 04. 문자열 - 프로그래머스 : 문자열안에 문자열 (0) | 2023.07.25 |
---|---|
(프로그래머스/자바) 힌트문제2 02. 배열 - 프로그래머스 : 배열 회전시키기 (0) | 2023.07.25 |
(프로그래머스/자바) 힌트문제1 02. 문자열 - 프로그래머스 : 숫자 문자열과 영단어 (0) | 2023.07.18 |
(프로그래머스/자바) 힌트문제1 01. 수학 - 프로그래머스 : 짝수는 싫어요 (0) | 2023.07.18 |