[JAVA 문제 풀이] 50. 한 번만 등장한 문자

프로그래머스(120896)
Stupefyee's avatar
Dec 26, 2024
[JAVA 문제 풀이] 50. 한 번만 등장한 문자
notion image

내가 작성한 코드

💡
import java.util.*; class Solution { public String solution(String s) { StringBuilder answer = new StringBuilder(); String[] str = s.split(""); // String 배열화 Arrays.sort(str); // 정렬 for (String string : str) { int count = 0; // 등장한 횟수 for (String value : str) { if (string.equals(value)) { count++; } } // 1번만 등장하면 값 더하기 if (count == 1) { answer.append(string); } } return answer.toString(); } }

다른 사람의 코드

💡
import java.util.*; class Solution { // 주어진 문자열 s에서 중복되지 않는 문자를 알파벳 순서대로 반환하는 함수 public String solution(String s) { // 문자열을 문자 배열로 변환 char[] chars = s.toCharArray(); // 각 문자에 대한 등장 횟수를 저장할 Map Map<Character, Integer> charMap = new HashMap<>(); // 문자열에서 각 문자의 등장 횟수를 세는 루프 for (char c : chars) { // 문자가 등장할 때마다 등장 횟수를 1 증가시킨다. charMap.put(c, charMap.getOrDefault(c, 0) + 1); } // 중복되지 않는 문자를 저장할 StringBuilder StringBuilder sb = new StringBuilder(); // charMap의 각 문자에 대해 등장 횟수가 1인 문자만 StringBuilder에 추가 for (char c : charMap.keySet()) { // 등장 횟수가 1인 문자는 중복되지 않으므로 sb에 추가 if (charMap.get(c) == 1) { sb.append(c); } } // 중복되지 않는 문자를 알파벳 순서대로 정렬하기 위해 StringBuilder에서 문자열을 추출 char[] charArr = sb.toString().toCharArray(); // 알파벳 순으로 정렬 Arrays.sort(charArr); // 정렬된 문자 배열을 다시 문자열로 변환하여 반환 return new String(charArr); } }
Share article

stupefyee