[백준]A를 B로.java

전영서·2021년 12월 16일
0

Algorithm

목록 보기
88/89

1.문제

2.코드

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringBuilder A = new StringBuilder(br.readLine());
        StringBuilder B = new StringBuilder(br.readLine());

        int[] num = new int[26];

        for(int i=0; i<A.length(); i++){
            num[A.charAt(i)-'A']++;
        }

        for(int i=0; i<A.length(); i++){
            num[B.charAt(i)-'A']--;
        }

        for(int i=0; i<26; i++){
            if(num[i]!=0){
                System.out.println(-1);
                return;
            }
        }

        int result = 0;


        int pos = A.length()-1;
        int curr = pos;
        int cnt = 0;

        while(curr>=0 && pos>=0){
            if(B.charAt(curr) == A.charAt(pos)){
                cnt++;
                curr--;
            }
            pos--;

        }

        System.out.println(A.length()-cnt);

    }

}

3.Review

처음에 고민을 했는데 A문자 하나를 앞으로만 옮긴다는것을 생각하여 B문장의 뒤에서부터 옮겨야 할것을 찾아주었다.

설명이 어렵다...


를 예시로 들면

B문장의 AB까지 똑같고 C를 찾고 그 이전 문장인 A를 찾아야 하는데 없으므로

ABC를 제외한 나머지 2개만 옮겨주면 된다..

profile
꾸준히 성실하게

0개의 댓글