
class Solution {
public long solution(String numbers) {
String[] matchNumbers = {
"zero", "one", "two"
, "three", "four", "five"
, "six", "seven", "eight", "nine"};
for (int i = 0; i < matchNumbers.length; i++) {
numbers = numbers.replaceAll(matchNumbers[i], String.valueOf(i));
}
return Long.parseLong(numbers);
}
}

class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] charArray = my_string.toCharArray();
// num1과 num2 위치의 문자 교환
char temp = charArray[num1];
charArray[num1] = charArray[num2];
charArray[num2] = temp;
// 문자 배열을 문자열로 변환
String result = new String(charArray);
return result;
}
}
문제를 보고 StringBuilder나 replace를 이용한 문제인 줄 알았는데 char타입의 배열로 변환하여 푸는 문제였다.

public String solution(String s) {
// 1. 각 문자의 등장 횟수를 센다.
Map<Character, Integer> frequencyMap = new HashMap<>();
for (char c : s.toCharArray()) {
frequencyMap.put(c, frequencyMap.getOrDefault(c, 0) + 1);
}
// 2. 한 번만 등장하는 문자를 필터링한다.
ArrayList<Character> uniqueChars = new ArrayList<>();
for (Map.Entry<Character, Integer> entry : frequencyMap.entrySet()) {
if (entry.getValue() == 1) {
uniqueChars.add(entry.getKey());
}
}
// 3. 필터링된 문자를 사전 순으로 정렬한다.
Collections.sort(uniqueChars);
// 4. 정렬된 문자를 결합하여 반환한다.
StringBuilder result = new StringBuilder();
for (char c : uniqueChars) {
result.append(c);
}
return result.toString();
}
아직 Map, HashMap 에 대해서 공부가 부족하다.

import java.util.*;
class Solution {
public int[] solution(int n) {
ArrayList<Integer> answer = new ArrayList<>();
for (int i = 1; i <= n ; i++) {
if (n % i == 0) {
answer.add(i);
}
}
int[] num = new int[answer.size()];
for (int i = 0; i < answer.size(); i++) {
num[i] = answer.get(i);
}
return num;
}
}