하루의 PS w/python 치팅 페이퍼
2022/01/19

이 글에 앞서

  • 문제 풀고 책이나 인터넷에서 정보를 찾고 하다가 발견한 사실이지만, 잘못된 내용이 있을 수 있으며 의도한 기능과 다르게 쓸 수도 있으니 그런 내용이 보인다면 둥글게 둥글게 알려주세요.😇
  • 나 보라고 만든 거라 순서랑 내용 다 뒤죽박죽일 수 있으니 ctrl+f를 이용해보자



1
2
3
import sys
input = lambda: sys.stdin.readline().strip()
print = lambda x:sys.stdout.write(str(x)+"\n")
  • 빠르게 읽는 걸로 알고 있음…!
  • 유용하게 사용하자

리스트 추가: a.append(x)

1
ans = sorted(a, key= lambda x:x[1])

  • 1번째 열을 가지고 sort
  • 그외 인자로는 reverse=True
1
2
3
4
5
ans = set()
for x in s:
if x!=' ' and x.isalpha():
ans.add(x.lower())
print(len(ans))
1
2
3
a = [[0]*10 for _ in range(20)]
b = [0 for _ in range(N+1)]
c = [0] * (N+1)

int a[10][20]같은 애

1
a[i] = (a[i]*pow(i+1, -1, MOD))%MOD
  • python에서 %연산은 무조건 양수로 나오는 그거

    1
    2
    3
    ll mod(ll x, ll m){
    return (x%m + m)%m;
    }
    • 이렇게 굳이 하지 않아도 됨
  • 모듈러 역원 하려면 pow(a, -1, MOD)

1
2
a**b
pow(a, b)
  • 같은 아이
1
b = str(bin(N))[2:]
  • 들어온 수 N을 2진수(str)로 바꾸는 아이
1
a = list(map(int, input().split()))
  • 한줄 깔끔하게 인풋
1
2
import math
math.log2(N)
  • $\log_{2}{N}$ 계산
1
2
3
import besect
lo = besect.besect_left(a, N)
hi = besect.besect_right(a, N)
  • 이분탐색

f-string format

1
print(f'Case #{i}: {ans}')

  • 우리가 아는 printf와 유사
1
2
a = [1, 2, 3, 4]
s = sum(a) # 10
1
2
for i in range(0, h):
print(''.join(a[i][:w]))
  • a[h][w] 다 출력하는데 조금 더 빨리 시간초과 안나게