본문 바로가기
  • KEEP HUSTLE!

파이썬 코테 준비60

[백준 1806] 부분합 - Python(파이썬) 투 포인터를 활용한 코드 import sys N, S = map(int, sys.stdin.readline().split()) data = list(map(int, sys.stdin.readline().split())) + [0] start, end = 0, 1 answer = float('inf') temp = data[0] while start = S: if answer > end - start: answer = end - start temp -= data[start] start += 1 else: temp += data[end] end += 1 print(answer if answer != float('inf') else 0) 2021. 3. 31.
[백준 1305] 광고 - Python(파이썬) KMP 알고리즘을 활용한 코드 def to_lps(pat, L): lps = [0] * L i, n = 1, 0 while i < L: if pat[i] == pat[n]: n += 1 lps[i] = n i += 1 else: if n != 0: n = lps[n-1] else: i += 1 print(L - lps[-1]) L = int(input()) pat = input() to_lps(pat, L) 2021. 3. 31.
[백준 11050] 이항 계수 1 - Python(파이썬) import sys N, K = map(int, sys.stdin.readline().split()) answer = 1 for i in range(N, N-K, -1): answer *= i answer /= N+1 - i print(int(answer)) 2021. 3. 31.
[백준 11051] 이항 계수 2 - Python(파이썬) import sys N, K = map(int, sys.stdin.readline().split()) K = min(K, N-K) answer = 1 for i in range(N, N-K, -1): answer *= i answer //= (N+1 - i) print(answer % 10007) 2021. 3. 31.
[백준 2470] 두 용액 - Python(파이썬) 투 포인터를 사용한 코드 import sys N = int(sys.stdin.readline().strip()) arr = sorted(list(map(int, sys.stdin.readline().split()))) s, e = 0, N-1 my_max = float('inf') answer = [] while s abs(temp): my_max = abs(temp) answer = [arr[s], arr[e]] if abs(arr[s]) < abs(arr[e]): e -= 1 else: s += 1 print(*answer) 2021. 3. 31.
[백준 3273] 두 수의 합 - Python(파이썬) 투포인터를 사용한 코드 import sys n = int(sys.stdin.readline().strip()) arr = sorted(list(map(int, sys.stdin.readline().split()))) key = int(sys.stdin.readline().strip()) answer = 0 s, e = 0, n-1 while s < e: my_sum = arr[s] + arr[e] if my_sum == key: answer += 1 e -= 1 elif my_sum < key: s += 1 else: e -= 1 print(answer) 2021. 3. 31.