๋šœ๋ถ€๋‹ˆ์˜ Devlog

[BOJ] 12094.A์™€ B (Java)

by ๋šœ๋ถ€๋‹ˆ
import java.io.*;
import java.util.*;

public class Main {
    public static String strReverse(ArrayDeque<Character> deque, boolean isReverse) {
        
        String temp = "";
        
        while(!deque.isEmpty()) {
            if (isReverse) { // ๋’ค์ง‘์–ด์ง„ ์ƒํƒœ
                temp += deque.pollLast();
            } else {
                temp += deque.pollFirst();
            }
        }

        return temp;
        
    }
    
    public static String strRemove(String s, String t) {
        int sLen = s.length();
        int tLen = t.length();
        int count = tLen - sLen; // ๊ทœ์น™์„ ์ˆ˜ํ–‰ํ•  ํšŸ์ˆ˜
        
        boolean isReverse = false; // ์ดˆ๊ธฐ์—๋Š” ๋’ค์ง‘์ง€ ์•Š์œผ๋ฏ€๋กœ false ์„ค์ •
        
        ArrayDeque<Character> deque = new ArrayDeque<>(); // ๋ฑ ์ดˆ๊ธฐํ™”
        for (int i = 0; i < tLen; i++) {
            deque.add(t.charAt(i));
        }
        
        char c;
        while (count-- > 0) {
            if (isReverse) // ๋’ค์ง‘์–ด์ง„ ์ƒํƒœ์ด๋ฏ€๋กœ ์•ž์—์„œ ๋นผ์•ผํ•จ
                c = deque.pollFirst();
            else // ๋’ค์ง‘์–ด์ง€์ง€ ์•Š์€ ์ƒํƒœ์ด๋ฏ€๋กœ ๋’ค์—์„œ ๋นผ์•ผํ•จ
                c = deque.pollLast();
            if (c == 'B') // ๋นผ๋‚ธ ๋ฌธ์ž์—ด์ด B์ธ ๊ฒฝ์šฐ ๋’ค์ง‘์–ด ์คŒ
                isReverse = !isReverse;
        }
        
        return strReverse(deque, isReverse);
        
    }
    
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        String s = br.readLine();
        String t = br.readLine();
        
        t = strRemove(s, t);
        
        if (s.equals(t))
            System.out.println(1);
        else
            System.out.println(0);
    }
}
 

12904๋ฒˆ: A์™€ B

์ˆ˜๋นˆ์ด๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ AB (Abdominal์˜ ์•ฝ์ž), BAA (์–‘์˜ ์šธ์Œ ์†Œ๋ฆฌ), AA (์šฉ์•”์˜ ์ข…๋ฅ˜), ABBA (์Šค์›จ๋ด ํŒ ๊ทธ๋ฃน)์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์‹ค์— ๋†€๋ž€ ์ˆ˜

www.acmicpc.net

 

์ด ๋ฌธ์ œ๋Š” ๋ฌธ์ž์—ด S์™€ ๋ฌธ์ž์—ด T๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ฃผ์–ด์ง„ ๊ทœ์น™์„ ์ ์šฉํ•ด S๋ฅผ T๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

S๋ฅผ T๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค T๋ฅผ S๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

 

์šฐ์„  isReverse๋ผ๋Š” boolean ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ฌธ์ž์—ด์ด ๋’ค์ง‘ํ˜”๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

T์˜ ๊ธธ์ด - S์˜ ๊ธธ์ด๋ฅผ ํ•œ ํšŸ์ˆ˜๋งŒํผ ์•„๋ž˜์˜ ๊ทœ์น™์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

1. isReverse๊ฐ€ false์ธ ๊ฒฝ์šฐ, ๋งจ ๋’ค์˜ ๊ธ€์ž๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

2. isReverse๊ฐ€ ture์ธ ๊ฒฝ์šฐ, ๋งจ ์•ž์˜ ๊ธ€์ž๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

๊ทธ ํ›„, isReverse๊ฐ€ false์ด๋ฉด ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ๋ฐ˜๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

์ด ๋ฌธ์ œ๋Š” AC์™€ ์œ ์‚ฌํ•œ ๊ฒƒ ๊ฐ™๋„ค์š”. ๐Ÿ˜Ž๐Ÿ˜Ž

๐Ÿ‘‰ AC ๋ฌธ์ œ ํ’€๋Ÿฌ ๊ฐ€๊ธฐ

๐Ÿ‘‰ AC ๋ฌธ์ œ ํ’€์ด ๋ณด๋Ÿฌ ๊ฐ€๊ธฐ

 

'Algorithm > BOJ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] 2615.์˜ค๋ชฉ (Java)  (0) 2022.04.21
[BOJ] 1759.์•”ํ˜ธ๋งŒ๋“ค๊ธฐ (Java)  (0) 2021.06.20
[BOJ] 10159.์ €์šธ (Java)  (0) 2021.05.02
[BOJ] 1043.๊ฑฐ์ง“๋ง (Java)  (0) 2021.04.30
[BOJ] 5430.AC (Java)  (0) 2021.04.30

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

๋šœ๋ถ€๋‹ˆ์˜ Devlog

๋šœ๋ถ€๋‹ˆ

ํ™œ๋™ํ•˜๊ธฐ