🌞Algorithm/🔥programmers

[programmers] 한 번만 등장한 문자

뿌야._. 2026. 10. 20. 10:36
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120896
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


< 한 번만 등장한 문자 >

 

문제 풀이 (Java)

import java.util.*;

class Solution {
	public String solution(String s) {
		String answer = "";

		HashMap<Character, Integer> map = new HashMap<>();
		for (int i = 0; i < s.length(); i++) {
			if (map.containsKey(s.charAt(i))) {
				map.put(s.charAt(i), map.get(s.charAt(i)) + 1);
			} else {
				map.put(s.charAt(i), 1);
			}
		}

		ArrayList<Character> list = new ArrayList<>(map.keySet());
		Collections.sort(list, new Comparator<Character>() {

			@Override
			public int compare(Character o1, Character o2) {
				if (map.get(o1) == map.get(o2)) {
					return o1 - o2;
				}
				return map.get(o1) - map.get(o2);
			}
		});

		for (Character c : list) {
			if (map.get(c) == 1) {
				answer += c;
			}
		}
		return answer;
	}
}

 

HashMap을 사용하여 각 문자가 몇 번 등장했는지 구한다. 등장 횟수 순, 사전 순으로 정렬 후 한 번만 등장하는 문자를 answer에 저장한다. 최종 answer을 반환한다. 

 



 

출처: 프로그래머스 코딩 테스트 연습, 
https://school.programmers.co.kr/learn/challenges