알고리즘 8

[17729] 오등큰수 #python

백준 17299번 오등큰수 import sys num = int(input()) a = list(map(int, input().split(" "))) result = ["-1" for _ in range(num)] stack = [0] count = dict() for i in a: try: count[i] += 1 except: count[i] = 1 for i in range(num): while stack and count[a[stack[-1]]] < count[a[i]]: result[stack[-1]] = str(a[i]) stack.pop() stack.append(i) i+=1 print(" ".join(result)) [17298]오큰수와 같은 유형의 문제이다. 다만, 오등큰수는 각 원소 ..

[Tip] 백준 시간 초과 에러

로직의 이슈가 없는데도 시간 초과가 난다면, input() 대신 아래와 같이 sys 모듈을 사용하자. python 이외의 언어는 빠른 A+B를 참고하세요. import sys #num = int(input()) 대신 아래의 코드를 쓰자. num = int(sys.stdin.readline()) 하지만 우리는 코딩할 때, input()으로 코드를 짜기 때문에 이를 일일히 sys.stdin.readline() 바꾸기가 번거롭다. 그럴 때는 sys.stdin.readline 를 input 으로 덮어쓰면 조금 더 간편해진다. import sys input = sys.stdin.readline #기존의 코드를 수정할 필요가 없어진다. num = int(input()) 참고로, sys.stdin.readline()..

[11660] 구간 합 구하기5 #python

백준 11660번 구간 합 구하기 내가 푼 답 ⇒ 시간 초과! n, m = map(int, input().split()) square = [] for i in range(n): square.append(list(map(int, input().split()))) for i in range(m): x1, y1, x2, y2 = map(int, input().split()) data = list(map(lambda x: sum(x[y1-1:y2]), square[x1-1:x2])) print(sum(data)) 정답 import sys input = sys.stdin.readline n, m = map(int, input().split()) square = [list(map(int,input().split()..