티스토리 뷰

PS/boj

boj)11328

kingsubin 2020. 8. 23. 13:52
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    private static int[][] alpha;

    private static final String P = "Possible";
    private static final String I = "Impossible";
    private static final String NEW_LINE = "\n";

    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int N = Integer.parseInt(br.readLine());

        while(N-- > 0) {
            alpha = new int[2][26];
            StringTokenizer st = new StringTokenizer(br.readLine());

            for(char c: st.nextToken().toCharArray()) {
                alpha[0][c - 'a']++;
            }

            for(char c: st.nextToken().toCharArray()) {
                alpha[1][c - 'a']++;
            }

            sb.append(isSame(alpha[0], alpha[1]) ? P : I).append(NEW_LINE);	
        }

        System.out.println(sb);
    }

    private static boolean isSame(int[] arr1, int[] arr2) {
        for(int i = 0; i < arr1.length; i++) {
            if(arr1[i] != arr2[i]) return false;
        }

        return true;
    }
}

 

- 못 풀겠어서 다른 풀이 참조

 

- 1. 문제이해 자체를 잘못함. A가 B를 포함해야 된다고 생각한거 자체가 잘못됨

- 2. 결국에 알파벳에서 같은지 카운팅 하는것

- 3. 다른 자바 풀이를 보니까 Scanner말고 BufferedReader를 사용함 

     -> 알고리즘 효율성 검사에 유리함, 예외처리가 필수임, StringTokenizer 사용

- 4. A, B에서 알파벳 카운팅함, -'a'를 해서 0~25까지 숫자로 카운팅

- 5. A,B 배열 비교후 != false. 답일려면 A,B 배열에 있는 알파벳 카운팅이 같아야함

 

 

 

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

 

 

 

 

'PS > boj' 카테고리의 다른 글

boj)1919  (0) 2020.08.23
boj)13330  (0) 2020.08.23
boj)2577  (0) 2020.08.23
boj)10808  (0) 2020.08.22
boj)10871  (0) 2020.08.22