코딩테스트 연습 - 한 번만 등장한 문자 | 프로그래머스 스쿨 (programmers.co.kr)
문제 설명
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
제한사항
- 0 < s의 길이 < 1,000
- s는 소문자로만 이루어져 있습니다.
풀이
- 문자열 s를 나눈 것을 key값으로 하여 해시맵에 값을 추가한다.
getOrDefault(key, defaultValue)
key : 값을 가져와야 하는 요소의 키
defaultValue : 지정된 키로 매핑된 값이 없는 경우 반환되어야 하는 기본값
반환 값 : 찾는 key가 존재하면 해당 key에 매핑되어 있는 값을 반환하고, 그렇지 않으면 디폴트 값이 반환된다.
- 알파벳 순으로 정렬하기 위해 map.keySet()을 List로 만들어 주고 sort() 메서드를 이용해 정렬한다.
- 해당 key의 value가 1이라면 문자열 answer에 추가해준다.
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
HashMap<String, Integer> map = new HashMap<>();
for (String str : s.split("")) {
map.put(str, map.getOrDefault(str, 0) + 1);
}
List<String> keyList = new ArrayList<>(map.keySet());
keyList.sort(String::compareTo);
for (String key : keyList) {
if (map.get(key) == 1) {
answer += key;
}
}
return answer;
}
}
'Programmers > Lv.0' 카테고리의 다른 글
[프로그래머스][Lv.0][Java][문자열] 문자열안에 문자열 (0) | 2023.03.27 |
---|---|
[프로그래머스][Lv.0][Java][Array] 배열 회전시키기 (0) | 2023.03.27 |
[프로그래머스][Lv.0][Java] 짝수는 싫어요 (0) | 2023.03.20 |
[프로그래머스][Lv.0] 자릿수 더하기 (0) | 2023.03.18 |
[프로그래머스][Lv.0][Java] 머쓱이보다 키 큰 사람 (0) | 2023.03.18 |