728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.util.HashMap;
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
String str = sc.next();
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
map.put(str.charAt(i), map.getOrDefault(str.charAt(i), 0) + 1);
}
//System.out.println(map);
boolean isExist=true;
System.out.print("#"+tc+" ");
for (int i = 0; i < 26; i++) {
if (map.containsKey((char)('a' + i))) {
if (map.get((char)('a' + i)) % 2 != 0) {
isExist=false;
System.out.print((char)('a' + i));
}
}
}
if(isExist==true) {
System.out.print("Good");
}
System.out.println();
}
}
}
알파벳 소문자가 2로 나누어 떨어지는지를 hashmap으로 체크했다.
(char)('a'+i)는 char alpha로 치환을 해주면 더 깔끔해질 것 같다
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
String str = sc.next();
HashMap<Character, Integer> map = new HashMap<>();
ArrayList<Character> list = new ArrayList<>();
for (int i = 0; i < str.length(); i++) {
map.put(str.charAt(i), map.getOrDefault(str.charAt(i), 0) + 1);
}
for(char ch:map.keySet()) {
if(map.get(ch)%2!=0) {
list.add(ch);
}
}
Collections.sort(list);
System.out.print("#"+tc+" ");
if(list.isEmpty()) {
System.out.print("Good");
}
else {
for(char ch:list) {
System.out.print(ch);
}
}
System.out.println();
}
}
}
cnt 활용한 풀이
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
String str = sc.next();
StringBuilder sb = new StringBuilder();
int cnt[] = new int[26];
for (int i = 0; i < str.length(); i++) {
cnt[str.charAt(i) - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (cnt[i] % 2 != 0) {
sb.append((char) (i + 'a'));
}
}
if (sb.toString().isEmpty()) {
System.out.println("#" + tc + " " + "Good");
} else {
System.out.println("#" + tc + " " + sb);
}
}
}
}
728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 알파벳 공부 (D3) (1) | 2024.09.13 |
|---|---|
| [SW Expert Academy] 100만 이하의 모든 소수 (D3) (0) | 2024.09.13 |
| [SW Expert Academy] 현주의 상자 바꾸기 (D3) (0) | 2024.09.13 |
| [SW Expert Academy] 늘어지는 소리 만들기 (D3) (0) | 2024.09.13 |
| [SW Expert Academy] [S/W 문제해결 기본] 8일차 - 암호문2 (0) | 2024.09.12 |