강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

hms3593님의 프로필 이미지
hms3593

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 가장 큰 수 (스택)

제 코드가 틀린것일까요?

작성

·

254

0

우선 풀이를 보지 않고 작성한 코드입니다.

import sys

sys.stdin=open("input.txt", "rt")

 

n,m=map(int, input().split())

a=list(map(int, str(n)))

b=[]

x=1

while x:

    b.append(a[0])

    a.pop(0)

    if len(a)==0:

        break

    while b[-1]<a[0]:

        b.pop(-1)

        m-=1

        if len(b)==0:

            break

        elif m==0:

            for i in range(len(a)):

                print(a[i])

                b.append(a[i])

            x=0

            break

 

if m>0:

    for i in range(m):

        b.pop(-1)

 

for x in b:

    print(x, end='')

 

채점시 case #04 에서만 wrong answer가 뜨는데,

중간에 while문 안에서 m==0 일때 break가 안드네요.

일시적인 오류인건가 하는데 이해가 안가서요. 

 

답변 1

0

hms3593님의 프로필 이미지
hms3593
질문자

 if len(b)==0:

            break

와 

elif m==0:

            for i in range(len(a)):

                print(a[i])

                b.append(a[i])

            x=0

            break

순서를 바꾸니까 해결이 되었네요;; b가 계속 비어있는 list가 될수도 있다고는 생각을 못했습니다. 그다지 효율적인 코드는 아니네요..

hms3593님의 프로필 이미지
hms3593

작성한 질문수

질문하기