https://www.acmicpc.net/problem/2812
CODE
처음 실패
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
stack = []
number = list(input().rstrip())
for i in range(n):
while k>0 and stack and stack[-1] < number[i]:
stack.pop()
k-=1
stack.append(number[i])
print(*stack,sep='')
두번째 성공
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
stack = []
number = list(input().rstrip())
for i in range(n):
while k>0 and stack and stack[-1] < number[i]:
stack.pop()
k-=1
stack.append(number[i])
print(''.join(stack[:len(stack)-k]))
실패 이유
- print(*stack, sep=''): *stack을 사용하여 리스트 stack의 요소를 개별적으로 전달하고, sep=''을 지정하여 요소들 사이에 구분 문자열 없이 출력합니다. 즉, 각 요소가 공백 없이 연이어서 출력됩니다.
- 예를 들어, stack이 [1, 2, 3]인 경우, 출력은 123과 같이 요소들이 연이어 출력됩니다.
- print(''.join(stack)): ''.join(stack)을 사용하여 리스트 stack의 요소들을 하나의 문자열로 결합하여 출력합니다. 리스트의 요소들을 ''.join() 메서드에 전달하면, 요소들이 하나의 문자열로 연결됩니다. 이때 요소들 사이에는 구분 문자열이 없습니다.
- 예를 들어, stack이 [1, 2, 3]인 경우, 출력은 123과 같이 하나의 문자열로 출력됩니다.
- 정리하자면 리스트의 요소가 연이어 출력되거나 하나의 문자열로 출력되느냐의 차이다.
'Koala - 10기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[ 백준 / Python ] #5430 AC (0) | 2023.05.21 |
---|---|
[ 백준 / Python ] #1515 수 이어 쓰기 (0) | 2023.05.19 |
[백준 / Python] #1124 언더프라임 (0) | 2023.05.12 |
[백준/17502번]JAVA 클레어와 펠린드롬 (0) | 2023.05.07 |
Baekjoon 13235번: 팰린드롬 / C++ (0) | 2023.05.07 |