아래와 같이 코드를 작성했습니다만, 오답처리되었습니다.
오답에 대한 테스트 케이스가 제공되지 않아 무엇이 문제인지 파악이 안되네요.
기본 알고리즘은 입력된 문자열이 AlphaNumeric만 입력되므로 Ascii코드값에 의거하여 입력된 문자열의 문자를 배열의 인덱스로 사용하는데 있습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int tCase = in.nextInt();
int[] alpa = new int[200];
boolean[] result = new boolean[tCase];
for (int t = 0; t < tCase; t++) {
// 기존 문자열 처리시 사용하므로 초기화해줌
for (int i = 0; i < alpa.length; i++) {
alpa[i] = 0;
}
String input = in.next(); // 첫 문자열 입력 받음
int length = input.length(); // 길이 확인
// 문자열에 사용된 문자에 대한 배열값을 증가시켜줌
for (char c : input.toCharArray()) {
alpa[c]++;
}
String anagram = in.next(); // 두번째 문자열 입력 받음
// 첫번째 문자열과 두번째 문자열의 길이가 다르면 실패로 처리하고 다음 케이스로 넘어감
if (length != anagram.length()) {
result[t] = false;
continue;
}
// 두번째 문자열에서 사용된 문자를 배열값에서 차감해줌
for (char c : anagram.toCharArray()) {
alpa[c]--;
if (alpa[c] < 0) { // 만약 배열값이 -가되면 기존에 없는 문자열을 사용한 것이므로 종료 처리
result[t] = false;
break;
}
length--; // 사용처리를 위해 문자열을 빼줌.
}
if (length == 0) // 모든 문자가 사용되었으므로 성공처리
result[t] = true;
}
for (int t = 0; t < tCase; t++) {
System.out.println(result[t] ? "Yes" : "No.");
}
in.close();
}
}
cardbt
안녕하세요.
아래와 같이 코드를 작성했습니다만, 오답처리되었습니다.
오답에 대한 테스트 케이스가 제공되지 않아 무엇이 문제인지 파악이 안되네요.
기본 알고리즘은 입력된 문자열이 AlphaNumeric만 입력되므로 Ascii코드값에 의거하여 입력된 문자열의 문자를 배열의 인덱스로 사용하는데 있습니다.
9년 전