728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com

1. 알파벳을 담을 수 있는 int 배열을 만듦
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++) {
int count[] = new int[26];
String str = sc.next();
int num = 0;
for (int i = 0; i < str.length(); i++) {
count[str.charAt(i) - 'A']++;
}
for (int i = 0; i < count.length; i++) {
if (count[i] == 2 | count[i] != 0)
num++;
}
if (num == 2)
System.out.println("#" + tc + " Yes");
else
System.out.println("#" + tc + " No");
}
}
}
2. HashMap for에서 Integer value 사용
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);
}
if(map.size()==2) {
for( Integer value : map.values()) {
if(value!=2) {
System.out.println("#"+tc+" "+"No");
continue;
}
}
System.out.println("#"+tc+" "+"Yes");
}
else {
System.out.println("#"+tc+" "+"No");
}
}
}
}
3. HashMap for에서 entry 사용
import java.util.HashMap;
import java.util.Map;
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);
}
if(map.size()==2) {
for( Map.Entry<Character, Integer> m:map.entrySet()) {
if(m.getValue()!=2) {
System.out.println("#"+tc+" "+"No");
continue;
}
}
System.out.println("#"+tc+" "+"Yes");
}
else {
System.out.println("#"+tc+" "+"No");
}
}
}
}
4. HashSet 사용
import java.util.HashSet;
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++) {
HashSet<Character> set = new HashSet<>();
// char[] str = sc.next().toCharArray();
String str = sc.next();
for (int i = 0; i < str.length(); i++) {
set.add(str.charAt(i));
}
System.out.println("#" + tc + " " + (set.size() == 2 ? "Yes" : "No"));
}
}
}
AAAB,CDCC와 같은 테스트 케이스가 추가가 안 되어 있어서 이렇게도 풀리는 것 같은데,
문제 요구사항을 따진다면 이 방법은 쓰면 안 될 것 같다.
728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 다솔이의 월급 상자 (D3) (0) | 2024.09.06 |
|---|---|
| [SW Expert Academy] 1차원 정원 (D3) (0) | 2024.09.04 |
| [SW Expert Academy] 두가지 빵의 딜레마 (D3) (0) | 2024.09.03 |
| [SW Expert Academy] 적고 지우기 (D3) (0) | 2024.09.03 |
| [SW Expert Academy] 최대 성적표 만들기 (D3) (1) | 2024.09.03 |