배푸니까

[백준 / Java] 11328. Strfry 본문

백준

[백준 / Java] 11328. Strfry

baefrica 2023. 6. 15. 01:15
반응형

https://www.acmicpc.net/problem/11328

 

11328번: Strfry

C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래

www.acmicpc.net

 


💻 풀이 결과

결과

 

💯 최종 코드

import java.util.Scanner;
import java.util.StringTokenizer;

/* 
 * strfry 함수 : 입력된 문자열을 무작위로 재배열 -> 새로운 문자열을 만들어냄
 * 입력된 문자열과 새로 재배열된 문자열이 다를 필요는 없다.
 * 2번째 문자열이 1번째 문자열에 strfry 적용하여 얻어질 수 있는지 판단
*/
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt(); // 테케 수 (0 < N < 1001)

        /*
         * sc.nextInt() 후 sc.nextLine() 하기 전에 sc.nextLine() 을 한번 더 작성하여 개행문자 제거
         */
        sc.nextLine();

        TestCase: for (int tc = 0; tc < N; tc++) {
            StringTokenizer st = new StringTokenizer(sc.nextLine());
            String word1 = st.nextToken(); // 1번째 문자열
            String word2 = st.nextToken(); // 2번째 문자열

            int[] arr = new int[26];
            // 1번째 문자열에 사용된 알파벳 카운팅
            for (int j = 0; j < word1.length(); j++) {
                arr[word1.charAt(j) - 'a']++;
            }

            // 2번째 문자열을 돌면서 확인
            for (int j = 0; j < word2.length(); j++) {
                arr[word2.charAt(j) - 'a']--;
            }

            // 마지막 확인 작업
            for (int j = 0; j < arr.length; j++) {
                if (arr[j] != 0) {
                    System.out.println("Impossible");
                    continue TestCase;
                }
            }
            System.out.println("Possible");
        }
    }
}

 

💢 틀린 이유

  • 첫 번째 문자열이 두 번째 문자열보다 더 긴 경우를 고려하지 못했다.

💡 깨달은 점

1. 알파벳 문자를 숫자로 변환할 때

// 'a' 문자열을 빼준다.
System.out.println(S.charAt(i) - 'a');

 

2. sc.nextLine() 사용

  • sc.nextInt() 후 sc.nextLine() 하기 전에 sc.nextLine()을 한번 더 작성하여 개행문자 제거
반응형

'백준' 카테고리의 다른 글

[백준 / JAVA] 17298. 오큰수  (0) 2023.06.30
[백준 / JAVA] 2493. 탑  (0) 2023.06.27
[백준 / Java] 1158. 요세푸스 문제  (0) 2023.06.27
[백준 / Java] 1406. 에디터  (0) 2023.06.25
[백준 / Java] 3273. 두 수의 합  (0) 2023.06.15