민스씨의 일취일장

Java | 백준 11328 Strfry 풀이 전략 기록 본문

Data Structure & Algorithm/Java

Java | 백준 11328 Strfry 풀이 전략 기록

읻민스 2023. 8. 9. 12:02
반응형

백준 11328 Strfry 풀이 전략 기록 [🥉 브론즈 II ]

 

11328번: Strfry

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

www.acmicpc.net

문제 해결 포인트

  1. 주어진 두 문자열이 같은 종류와 같은 수의 문자를 갖고 있는지 확인해야 한다.

같은 종류와 수가 같아야 하는 이유는 문자의 종류가 같더라도 개수가 다르면 안됨을 뜻한다. 즉 두 문자열의 길이가 언제나 같아야 한다.

사용한 전략

  1. 알파벳 종류 수 길이의 정수 배열을 생성 후 '알파벳 캐릭터'-'a'를 인덱스 값으로 활용해 문자의 수와 종류를 한 번에 기록했다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Strfry11328 {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer st;
    static int N;

    static void input() throws IOException{
        N = Integer.parseInt(br.readLine());
        for(int i=0; i<N; i++){
            execute();
        }
    };

    static void execute() throws IOException{
        st = new StringTokenizer(br.readLine());
        String ref = st.nextToken();
        String test = st.nextToken();
        int[] chrArr = new int['z'-'a'+1];
        for(int i=0; i<ref.length(); i++){
            chrArr[ref.charAt(i)-'a']++;
        }
        for(int i=0; i<test.length(); i++){
            chrArr[test.charAt(i)-'a']--;
        }
        for(int i=0; i< chrArr.length; i++){
            if(chrArr[i]!=0){
                System.out.println("Impossible");
                return;
            }
        }
        System.out.println("Possible");
    }

    public static void main(String[] args) throws IOException{
        input();
    }
}

 

 

GitHub - YdMinS/Java: Java 학습 내용

Java 학습 내용. Contribute to YdMinS/Java development by creating an account on GitHub.

github.com

 

728x90
반응형