Zayson
A to Zayson!
Zayson
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (132)
    • Computer Science (20)
      • Network (4)
      • DB (12)
      • OS (4)
    • Algorithm (32)
      • ์™„์ „ํƒ์ƒ‰(Brute-Force) (3)
      • ๊ทธ๋ฆฌ๋””(Greedy) (6)
      • ํˆฌํฌ์ธํ„ฐ(Two-Pointer) (1)
      • ๊ทธ๋ž˜ํ”„(Graph) (5)
      • BFS & DFS (9)
      • ๊ตฌํ˜„, ์‹œ๋ฎฌ๋ ˆ์ด์…˜(Implementation) (5)
      • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP) (3)
    • Backend (51)
      • Spring Boot (19)
      • JPA (16)
      • Kafka (2)
      • Java (13)
      • Kotlin (1)
    • DevOps (1)
      • Jenkins (5)
      • Oracle Cloud Infrastructure (1)
      • Kubernetes & Docker (1)
    • Trouble Shooting (3)
      • JPA (1)
      • Spring Boot (2)
    • ํšŒ๊ณ  (5)
      • ์—”๋นต ํ”„๋กœ์ ํŠธ ํฌ์ŠคํŠธ ๋กœ๋“œ๋งต (1)
      • 2022๋…„ (4)
    • Kafka (7)
      • Kafka (5)
      • Kafka Connect (2)
    • ๊ธฐ์ˆ  ์„œ์  (6)
      • ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ (3)
      • ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ •๋ณตํ•ด์•ผํ•  ๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ ๋””์ž์ธ ํŒจํ„ด (2)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Backend
  • Kafka Connect
  • ์—”๋นตํ”„๋กœ์ ํŠธ
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์ „ ์ž…๋ฌธ
  • ๊ทธ๋ฆฌ๋””
  • SpringBoot
  • BFS
  • ๋ฐฑ์ค€
  • ๋ผ์ด๋ธŒ์Šคํ„ฐ๋””
  • ๋‚˜ ํ˜ผ์ž ์Šคํ”„๋ง๋ถ€ํŠธ!
  • kafka
  • CS
  • dfs
  • JPA
  • ๊ตฌํ˜„
  • Java
  • Computer science
  • spring boot
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์™„์ „ํƒ์ƒ‰

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Zayson

A to Zayson!

[๋ฐฑ์ค€, Java] 16120๋ฒˆ : PPAP
Algorithm/๊ทธ๋ฆฌ๋””(Greedy)

[๋ฐฑ์ค€, Java] 16120๋ฒˆ : PPAP

2022. 4. 26. 11:49

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

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

๐Ÿ˜ฎ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์Šคํƒ์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

‘P’๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ , ‘A’๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๋Š” PPAP ๋ฌธ์ž์—ด์ธ์ง€ ํŒ๋‹จํ•ด์ฃผ์—ˆ๋‹ค.

‘A’๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ PPAP ๋ฌธ์ž์—ด์ธ์ง€ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ”๋กœ ๋‹ค์Œ ์ธ๋ฑ์Šค ๋ฌธ์ž๊ฐ€ ‘P’์ธ์ง€ ํŒ๋‹จํ•˜๊ณ  ์Šคํƒ ์‚ฌ์ด์ฆˆ๊ฐ€ 2 ์ด์ƒ (์Šคํƒ์—๋Š” ‘P’๋งŒ ๋“ค์–ด๊ฐ)์ธ์ง€ ํ™•์ธ ํ›„ ์Šคํƒ์„ ๋‘๋ฒˆ popํ•ด ์ฃผ์—ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, ์Šคํƒ์—์„œ pop๋œ ๋ฌธ์ž 2๊ฐœ PP์™€ ํ˜„์žฌ ์ธ๋ฑ์Šค A, ๋‹ค์Œ ์ธ๋ฑ์Šค P๊ฐ€ ๋˜์–ด ๋ฌธ์ž์—ด PPAP๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฏ€๋กœ ๋‹ค์Œ ์ธ๋ฑ์Šค ‘P’๋กœ ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด์™ธ์˜ ๊ฒฝ์šฐ๋Š” PPAP๋ฌธ์ž์—ด์„ P๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ “NP”๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

๋ชจ๋“  PPAP ๋ฌธ์ž์—ด์ด P๋กœ ๋Œ€์ฒด๋œ๋‹ค๋ฉด, ๋งˆ์ง€๋ง‰์—๋Š” ์ฒ˜์Œ ์‹œ์ž‘ ๋ฌธ์ž์ธ P๋งŒ ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ์‚ฌ์ด์ฆˆ๊ฐ€ 1์ด๋ฉด PPAP ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” NP๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์—ˆ๋‹ค.

๐Ÿšฉ Java ์ฝ”๋“œ

package com.algorithm.Baekjoon;

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

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

        String str = br.readLine();

        String rst = checkPPAP(str);
        System.out.println(rst);
        br.close();
    }

    private static String checkPPAP(String str) {
        Stack<Character> stack = new Stack<>();

        int index = 0;
        for (char c : str.toCharArray()) {
            if(c == 'P') stack.push(c);
            // A์ธ ๊ฒฝ์šฐ
            else {
                // A ๋‹ค์Œ P์ธ ๊ฒฝ์šฐ PPAP ์„ฑ๋ฆฝ
                // ๋‹ค์Œ ๋ฌธ์ž ํ™•์ธ ์œ„ํ•ด ์ธ๋ฑ์Šค ์ฒดํฌ, PP์‚ญ์ œ ์œ„ํ•ด ์Šคํƒ ์‚ฌ์ด์ฆˆ ์ฒดํฌ. ๋‹ค์Œ ๋ฌธ์ž P์ธ์ง€ ์ฒดํฌ
                if(index < str.length() - 1 && stack.size() >= 2 && str.charAt(index+1) == 'P') {
                    stack.pop();
                    stack.pop();
                }
                // ์ด์™ธ์˜ ๊ฒฝ์šฐ PPAP๋ฅผ P๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์—†์Œ
                else {
                    return "NP";
                }
            }
            index++;
        }

        return stack.size() == 1 ? "PPAP" : "NP";
    }
}
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm > ๊ทธ๋ฆฌ๋””(Greedy)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€, Java] 5186๋ฒˆ : ํŒŒํ‹ฐ๋ฅผ ์—ด์–ด๋ผ!!!  (0) 2022.07.06
[๋ฐฑ์ค€, Java] 10775๋ฒˆ : ๊ณตํ•ญ  (0) 2022.06.21
[๋ฐฑ์ค€, Java] 1052๋ฒˆ : ๋ฌผ๋ณ‘  (0) 2022.05.17
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, Java] ๋‹จ์†์นด๋ฉ”๋ผ  (0) 2022.04.28
[ย ๋ฐฑ์ค€, Java] 1339๋ฒˆ : ๋‹จ์–ด ์ˆ˜ํ•™  (0) 2022.04.27
    'Algorithm/๊ทธ๋ฆฌ๋””(Greedy)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋ฐฑ์ค€, Java] 10775๋ฒˆ : ๊ณตํ•ญ
    • [๋ฐฑ์ค€, Java] 1052๋ฒˆ : ๋ฌผ๋ณ‘
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, Java] ๋‹จ์†์นด๋ฉ”๋ผ
    • [ ๋ฐฑ์ค€, Java] 1339๋ฒˆ : ๋‹จ์–ด ์ˆ˜ํ•™
    Zayson
    Zayson
    ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”