기타 파이썬으로 코테 풀 때 팁

류기탁·2021년 12월 3일
0

Python

목록 보기
4/9

내가 파이썬으로 코테 풀면서 기억해두면 좋을 것들을 짧게 정리해놓은 글.
단독 게시글로 쓰기는 애매해 모아서 작성했다.

1. 입력을 보다 빠르게 받을 때

input() -> sys.std.realine() 으로 바꾼다.

2. 2차원 행렬을 시계방향으로 90도 회전하는 코드

  • 이건 다른 곳에서도 쓰일 수 있다.
    def rotate_90(m):
        N = len(m) 
        ret = [[0] * N for _ in range(N)] # 행렬 생성하기
        for r in range(N):
            for c in range(N):
                ret[c][N-1-r] = m[r][c] # 이게포인트이다.
    return ret

3. import heapq

  • 파이썬은 heap도 지원한다.
  • 문제내에서 정렬이 필요하지만, 시간 때문에 매번 정렬 할 수 없는 경우 힙을 사용
  • import heapq 를 사용한다.
  • 메소드
heapq.heappush(힙이름,item) # 아이템을 힙에 추가
heapq.heappop(힙이름) # 힙에서 가장 작은 원소를 POP & return
heapq.heapify(x) # 리스트 x를 즉각적으로 heap으로 바꾼다.

4. import Counter

  • 어떤 단어가 주어졌을 때, 단어에 포함된 각 알파벳의 글자 수를 세어주는 간단한 함수이다.
from collections import Counter
  • 예시 hello word 문자열에서 각 글자가 몇 번 사용됐는가?
print(Counter('hello world'))
# 메소드 : most_common
# 데이터의 개수가 가장 많은 순으로 정렬된 배열을 리턴 한다.
print(Counter('you put me up, and you put me down').most_common())
# 숫자만큼 리턴함
print(Counter('you put me up, and you put me down').most_common(2))
  • 두 카운터를 더하거나, 뺄 수도 있다.
a = Counter(['shake it on','hot property'])
b = Counter(['space cowboy','little l','canned heat','shake it on'])
print(a)
print(b)
print(a+b)
# 뺄때는 이렇게 한다.
a.subtract(b)
print(a)
  • 교집합, 합집합 역시 연산 가능하다.
a&b
a|b

5. tuple

  • () 를 사용한다. 괄호를 사용하지 않아도 된다.
  • 튜플은 그 값을 바꿀 수 없다.(수정, 삭제 불가)
  • 슬라이싱, 추가(곱하기), 인덱싱은 가능하다.
  • 길이함수도 가능하다.
  • 순서가 있다.
tuple1 = (1,2,'a','b')
print(tuple1[0])
print(len(tuple1))

6. 언더스코어

  • 파이썬에서 자주 보이는 _
  • 언더스코어라고 한다.
  • 값을 무시하고 싶을 때, 변수에 특별한 의미를 부여할대, 제화 함수로 사용할 때 사용한다.
  • 마지막으로 실행했던 결과 값이 _ 라는 변수에 저장된다.
x, _, y = (1, 2, 3,)
print(x, y)
x, *_, y = (1,2,3,4,5,6,7,8)
print(x,y)
for _ in range(3):
    print("악")
# 따로 i를 사용하지 않아도 반복문 이가능하다.

7. 무한대(최대,최소값)

  • 알고리즘 풀이시 최소값, 최대값 구할 때 사용하는 무한대.
  • math 를 임포트해서도 가능하다.
positive = float('inf')
print(positive)
negative = float('-inf')
print(negative)

8. 큐 사용법

선언

from collections import deque
queue = deque()

append

  • 요소 삽입
queue.append(5)
queue.append(1)
queue.append(4)
queue.append(3)

popleft()

  • 왼쪽을 pop한다.
queue.popleft()
print(queue)
queue.append(9)
queue.popleft()
print(queue)

reverse()

  • 역순으로 전한
#나중에 들어온 요소부터 출력 
queue.reverse()
print(queue)

9. 우선순위 큐 사용법

  • 데이터 추가는 맘대로 해도 된다.
  • 출력은 가장 작은 값부터 제거한다.

선언

from queue import PriorityQueue
que = PriorityQueue()

디폴트 사이즈 설정

que = PriorityQueue(maxsize=8)
#이럴 경우 8로 설정됨

원소 추가

  • que.put(우선순위, 값)의 튜플 형태로 데이터를 추가하고 제거할 수 있다.
que.put(4)
que.put(7)
que.put(1)
que.put(3)
que.put(8,'IU')

삭제

que.get()
print(que.get())
profile
오늘도 행복한 하루!

0개의 댓글