본문 바로가기
정글/TIL

[크래프톤 정글] 19일 - 트리, PPAP

by 위대한초밥V 2023. 5. 4.
오늘 한 일👊
- tree 공부
- 알고리즘 문제 풀이
- 알고리즘 문제 오답(2주차 시험)

__future__ 문이란?

python3에서 쓰이는 문법을 python2에서 쓸 수 있게 해주는 문법이다. 새로운 버전으로 업데이트되지 않았거나, Tensorflow 사용 등 구버전의 언어를 쓰면서 최신 버전 기능을 사용할 때, __future__를 통해 상위 버전 기능을 쓸 수 있다.

# python version2
print "hello world"

# python version3
print("hello world")

Reference

list의 가장 마지막 위치에 있는 원소를 확인하는 방법

histogram = [1, 2, 3, 4, 5]
print(histogram[-1])    # 5

python has no attribute 오류

특정 모듈을 import하는 경우, 같은 이름으로 파이썬 파일을 생성하면 안된다.

2주차 시험 오답

P16120 - PPAP

 

16120번: PPAP

첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다.

www.acmicpc.net

Stack을 이용해 풀이했다. 길이가 3일때까지는 그냥 집어넣다가, 길이 4 이후부터 'A'이면 Stack에 넣고
'P'이면 뒤에서부터 PPAP인지 확인했다.
이때 stack에 'P'를 다시 넣어줘야 한다.(이 부분에서 if temp == "PAPP"(PAPP는 PPAP를 거꾸로 바꾼 값!)문 안으로 작성하여, 제대로 판단하지 못했다.)

  • PPAP라면, PPAP를 P로 치환한다.
  • PPAP가 아니라면, 원래 P를 추가하는 단계이므로 추가하는 것이다.

확인이 모두 끝나면 스택의 길이가 P만 남아있는지 확인하여, 그렇다면 PPAP를 그렇지 않다면 NP를 출력한다.

from sys import stdin as s

line = s.readline().rstrip()
stack = []

if "A" not in line and len(line) == 1:
    print("PPAP")
else:
    for i in range(len(line)):
        now = line[i]

        if len(stack) < 3:
            stack.append(now)
        else:
            if now == 'A':
                stack.append(now)
            else:
                temp = "P"

                for i in range(3):
                    temp += stack[-1 - i]

                if temp == "PAPP":
                    for j in range(3):
                        stack.pop()
                stack.append("P")

    if len(stack) == 1 and stack.pop() == "P":
        print("PPAP")
    else:
        print("NP")

 


어제는 오랜만에 런닝을 했다.(반은 거의 산책이지만!) 이곳에 사는동안 얼마나 주변을 둘려볼 수 있을지 모르겠다.
요즘은 집중을 전보다 못하는 느낌이다. 하나의 문제를 더 오래잡고 싶은데 그렇다보면 문제를 다 못볼까 걱정이라 조급해진다. 너무 초초해지지 말자!

어제는 두번째 시험이었다. 첫번째 시험에서 출제자의 의도대로 풀지 못한 것 같다는 생각에 아쉬움이 커서 그런지 이번 시험은 보기전부터 긴장되었다.
그런데 이번 시험은 전보다 훨~씬 어려웠다. 그래도 지난번에 비해 성장했다고 생각한다. 1번은 넘어갔고, 2,3번 같은 경우는 풀이 방향성은 일치하기 때문이다. 개인적으로 코드 구현력이 약하다고 생각한다. 최대한 답을 보지않고 스스로 고민한 내용을 풀이하는 능력을 길러야 겠다.

반응형