반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준 알고리즘] 백준 21867번 Java Bitecode 파이썬(Python)

1) 문제번호 : 21867번

 

2) 문제 출처

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

 

21867번: Java Bitecode

첫째 줄에 코드의 길이를 나타내는 정수 $N$이 주어진다. ($1 \leq N \leq 200\,000$) 둘째 줄에 알파벳 대문자로 이루어진 코드 $S$가 주어진다.

www.acmicpc.net

 

2. 문제

어서 내 손을  JAVA~

태한이는 JAVA를 싫어한다. 매우 싫어한다. 아주 앙증맞게 깨물고 싶을 정도다.

그래서 태한이는 코딩을 할 때 알파벳 J, A, V는 사용하지 않는다. 또한 기존의 코드에서도 J, A, V가 보이면 전부 이빨로 깨물어 제거한다. 기존의 코드에서 J, A, V를 깨물어 제거한 코드를 JAVA Bitecode라고 부른다.

입력으로 길이가 N인 코드 S가 주어지면, 그 코드의 JAVA Bitecode를 구해보자!

 

3. 제약사항


4. 입력

첫째 줄에 코드의 길이를 나타내는 정수 N이 주어진다. (1≤N≤200000)

둘째 줄에 알파벳 대문자로 이루어진 코드 S가 주어진다.

 

5. 출력

코드 S의 JAVA Bitecode를 출력한다.

JAVA Bitecode의 길이가 0이라면, 대신 nojava를 출력한다.

 

6. 풀이

- J, V, A 가 아니라면 스택에 넣는다.

- 스택의 크기가 0이면 JVA가 있다는 것이니 스택의 크기가 0이면 nojava 출력

- 아닐 경우에는 스택의 값 출력

7. 소스 코드

import sys
input=sys.stdin.readline

N = int(input()) # 코드의 길이

li = list(input().rstrip()) # 코드 입력

stack = []

for i in li :
    # J, V, A가 아니라면 stack에 넣기
     if i != 'J' and i != 'A' and i != 'V' :
         stack.append(i)

if len(stack) == 0 :
    print("nojava")
else :
    for i in range(len(stack)) :
        print(stack[i], end="")

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기