
내가 작성한 코드
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