inblog logo
|
👨🏻‍💻DriedPollack's Blog
    💡Coding Test☕Java

    [programmers] 한 번만 등장한 문자 - Java

    문자열에서 한 번만 등장하는 문자를 사전 순으로 정렬하는 문제를 해결하기 위해, HashMap을 사용하여 문자와 등장 빈도를 저장하고, 빈도가 1인 문자를 ArrayList에 추가합니다. 그 후, ArrayList를 오름차순으로 정렬하고 문자열로 반환합니다. 이 과정에서 HashMap의 각 요소를 순회하는 방법으로 map.forEach((key, value) -> {}); 문을 사용하였습니다.
    Jan 28, 2024
    [programmers] 한 번만 등장한 문자 - Java

    문제 설명

    문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

    제한사항

    • 0 < s의 길이 < 1,000
    • s는 소문자로만 이루어져 있습니다.

    입출력 예

    s
    result
    "abcabcadc"
    "d"
    "abdc"
    "abcd"
    "hello"
    "eho"

    입출력 예 설명

    입출력 예 #1
    • "abcabcadc"에서 하나만 등장하는 문자는 "d"입니다.
    입출력 예 #2
    • "abdc"에서 모든 문자가 한 번씩 등장하므로 사전 순으로 정렬한 "abcd"를 return 합니다.
    입출력 예 #3
    • "hello"에서 한 번씩 등장한 문자는 "heo"이고 이를 사전 순으로 정렬한 "eho"를 return 합니다.

    solution.java

    import java.util.*; class Solution { public String solution(String s) { Map<String, Integer> map = new HashMap<>(); for(String str: s.split("")){ // 문자열을 문자별로 잘라서 배열로 만든 후, map.put(str,map.getOrDefault(str,0)+1); // HashMap에 문자와 등장한 빈도수를 저장 } List<String> list = new ArrayList<>(); map.forEach((key, value) -> { // HashMap의 각 요소를 순회할 때 if(value==1){ // 빈도수가 1이라면 ArrayList에 삽입 list.add(key); } }); Collections.sort(list); // ArrayList를 오름차순으로 정렬 return String.join("", list); // 문자열 반환 } }
     

    핵심 키워드

    • map.getOrDefault() 메소드를 통해 해당 key가 없을 경우 기본값으로 설정한 값을 value로 가져올 수 있다.
    • map.forEach((key, value) -> {}); 문을 통해 map을 순회할 수 있다.
    • Collections.sort() 메소드를 통해 ArrayList를 오름차순으로 정렬할 수 있다.
     

    결론!

    해당 문제를 풀면서 코드를 작성하다가 HashMap의 각 요소를 순회하는 방법에서 어려움을 겪었고, 이를 map.forEach((key, value) -> {}); 문을 통해 해결할 수 있었다.
     
    Share article

    👨🏻‍💻DriedPollack's Blog

    RSS·Powered by Inblog