티스토리 뷰

외톨이 알파벳 문제 링크

정답 코드

import java.util.*;
import java.util.stream.*;

class Solution {
    public String solution(String input_string) {
        Map<String, Boolean> flag = new HashMap<>();
        String[] input = input_string.split("");       
        String answer = "";
        int i = -1;
        while(++i < input.length) {
            int j = i;
            while(j < input.length && input[i].equals(input[j])) j++;
            if(flag.getOrDefault(input[i], false)) answer += input[i];
            if(i != j) i = j - 1;
            flag.put(input[i], true);
        }

        if(answer.equals("")) return "N";
        return Stream.of(answer.split(""))
            .distinct()
            .sorted()
            .collect(Collectors.joining());
    }
}

문제 해설

  1. 중복되는 알파벳인지 확인할 맵 생성한다.
  2. input_string을 배열로 만들어 전체를 순회한다.
    • 중복되는 알파벳이면 넘어간다.
    • 지금 알파벳이 전에 나왔던 알파벳이라면 answer에 추가한다.
    • 중복되는 알파벳으로 설정한다.
  3. answer 값이 존재하면 중복을 제거, 정렬해서 리턴하고 비었으면 N을 리턴한다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함