출력 형식이 잘못되었습니다 가 계속 나오던 문제이당 결국 해결한 방법은 버릇 처럼 사용하는 strip 을 없애는 것이었다. 문제를 잘 읽어보면 알파벳이 아닌 글자는 그대로 있어야 한다. 고 적혀 있다. 필요할 때만 쓰도록 하자. 그 외에 리스트를 출력할 때 문제가 요구하는 문자열 형식으로 출력하기 위해서 print(''.join(s) 를 사용했다. 대문자, 소문자일 때를 나누고 숫자, 공백 (즉 알파벳이 아닐 때) 도 조건을 나누었다. 아스키 코드를 사용해서 이들을 if 문으로 나누어 주고 아스키 코드를 다시 문자로 만드는 chr 을 사용했다. 이때 만약 13 을 더했을 때 대문자 범위, 또는 소문자 범위 등을 넘어갈 경우엔 13 을 빼준다.s = list(input())# 알파벳이 아닌 것은 그대로 ..
while True 쓴다고 지나가던 사람한테 놀림 받은 문제... 아니 근데 이거 맞잖아sys.stdin.readline 을 남발하지 말 것... 시간 초과가 날 때 쓰기로 해요처음에는 result[0]*4 해서 각 인덱스에 +1 해주는 코드를 작성했는데 내가 보기에 헷갈릴 뿐만 아니라 자꾸 틀려서 upper 어쩌고로 바꿨다. 출력 초과가 난 이유는 sys.stdin.readline 때문이다. 이후 알아본 바로는 sys.stdin.readline 이 EOF 시에 빈 문자열을 반환하기 때문에 출력 초과가 난 것이다.이 전에 푼 문제가 아스키 코드로 소문자를 구분하는 것이었어서 이 문제도 아스키 코드로 구분했다. 아스키 코드 표 보고 치고 있는 것 보고 또 지나가는 사람이 뭐라 했다...# import sy..
풀이 과정처음에는 A 리스트에서 A[i+1] 카운팅 정렬에 대해 알아보았던 게 기억났다. result[stack.pop()] = A[i] 대신 result.append(A[i]) 를 했다가 혼쭐났다. 바본가 result.append 는 result 맨 끝에 수를 추가하는 것이다. stack 에 저장한 해당 index 의 오큰수를 result 같은 index 에 저장해야 하기 때문에 result[stack.pop()] = A[i] 를 사용해서 추가해줘야 한다.import sysinput = sys.stdin.readlinen = int(input())A = list(map(int, input().split()))result = [-1] * nstack = []stack.append(0)for i in ra..
풀이 과정8 4 3 6 8 7 5 2 1 일 때 맨 앞 자리 숫자가 입력될 숫자의 개수이다.🚨 맨 위에 있는 숫자와 원하는 수열의 숫자가 일치할 때도 일단 추가하고. 삭제한다 그래서 + 는 꼭 추가되어야 한다.오름차순으로 스택에 숫자가 push 되기 때문에 push 되는 숫자를 num 으로 설정하고 1 부터 while 문을 통해 추가한다.가장 최근에 추가된 숫자가 원하는 수열의 숫자와 같으면 pop 한다 (append 를 한 다음에)풀이 코드import sysfrom collections import dequestack = []result = []n = int(sys.stdin.readline().strip())num = 1for i in range(n) : value = int(sys.stdin..