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

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

by son_i 2023. 7. 25.
728x90

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

 

프로그래머스

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

programmers.co.kr

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

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

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

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

 

java
닫기
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