반응형

ProblemSolving/투 포인터 7

백준 2531 회전 초밥 (파이썬)

문제 : https://www.acmicpc.net/problem/2531 첫번째 풀이 (pypy3 2772ms, python3 시간초과) import sys def solve(): left = 0 right = k answer = 1 while left < N: eat = set() # 초밥을 k개 만큼 먹기 for i in range(left, right): eat.add(arr[i%N]) # c가 없으면 1개 추가하기 eat.add(c) answer = max(answer, len(eat)) # 1칸씩 밀기 left += 1 right += 1 print(answer) return if __name__=="__main__": input = sys.stdin.readline # N: 접시의 수 # d..

백준 1644 소수들의 연속합 (파이썬)

문제 : https://www.acmicpc.net/problem/1644 제출 코드 import sys def makeSieve(n): sqrt = int(n**(0.5)) temp = [1] * (n + 1) for i in range(2, sqrt+1): if temp[i] == 1: for j in range(i*2, n+1, i): temp[j] = 0 return [i for i in range(2, n+1) if temp[i] == 1] def solve(): answer = 0 input = sys.stdin.readline N = int(input()) primes = makeSieve(N) start = 0 end = 0 while end < len(primes): if sum(prim..

백준 17609 회문 (파이썬)

문제 : https://www.acmicpc.net/problem/17609 첫번째 풀이 (시간초과) import sys def solve(): string = input().strip() if len(string)%2 == 0: #뒤집었는데 똑같은 경우 #그 외는 없음 left = list(string[:len(string)//2]) right = list(string[len(string)//2:]) right.reverse() if left == right: return 0 return 2 else: for i in range(len(string)): temp = string[:i] + string[i+1:] left = list(temp[:len(temp) // 2]) right = list(tem..

1
반응형