알고리즘에 자주 쓰는 메서드 모음

박경준·2021년 6월 12일
0

알고리즘 문제풀이

목록 보기
3/24

치팅시트 ^_^

입력 받아오기

import sys
n, m = map(int, sys.stdin.readline().split())

문자 -> 아스키 코드

ord('a')

아스키 코드 -> 문자

chr(65)

인덱스와 값을 한번에 뽑아내기

for i, val in enumerate(list):

리스트 요소들의 총합

sum(score_list)

소수점 아래 셋째자리까지 표현. (넷째자리에서 반올림도 자동으로 해줌.)

print(f'{((over_avg_count / len(score_array)) * 100):.3f}%')

두 변수의 값을 swap 할 때 (파이썬의 장점)

a, b = b, a

파이썬에서 큐는 deque를 이용한다.

from collections import deque: deque 불러오기.
queue = deque(range(1, n+1)): deque 선언 및 할당.
deque.append(item): item을 데크의 오른쪽 끝에 삽입한다.
deque.appendleft(item): item을 데크의 왼쪽 끝에 삽입한다.
deque.pop(): 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
deque.popleft(): 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.
deque.extend(array): 주어진 배열(array)을 순환하면서 데크의 오른쪽에 추가한다.
deque.extendleft(array): 주어진 배열(array)을 순환하면서 데크의 왼쪽에 추가한다.
deque.remove(item): item을 데크에서 찾아 삭제한다.
deque.rotate(num): 데크를 num만큼 회전한다(양수면 오른쪽, 음수면 왼쪽).

sorted와 lambda

dict = sorted(dict, key=lambda x: dict[x], reverse=True)
  # 딕셔너리 소팅 기본값은 키값이므로 lambda를 이용해 소팅 기준을 sum_dict[x], 즉 value로 변경시켜준 모습이다.
array = [[1,2], [2,4], [3,4]]
array = sorted(array, key=lambda x: (x[1], -x[0]), reverse=True)
>> [[2, 4], [3, 4], [1, 2]]
  # x[1]은 내림차순, x[0]는 오름차순으로 정렬한 모습이다.

filter와 lambda

target = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(lambda x : x%2==0, target)

리스트에서 요소의 개수 구하기

collections.Counter(nums)
>> Counter({3: 4, 1: 3, 2: 2, 4: 2, 5: 1})
  # 리턴은 딕셔너리 형태이고 특이하게 Counter라는 함수로 리턴이 반환됨, key: 요소, value: 개수
  # 1차적으로 value는 내림차순, 2차적으로 key는 오름차순으로 정렬되어 있음.

리스트에서 최빈값 구하기

collections.Counter(nums).most_common()
>> [(1, 3), (2, 2), (3, 2)]
  # most_common의 매개변수에 숫자를 넣을수 있고, 비우면 모든 요소의 빈도수가 나옴.
  # 1차적으로 [1]번째 인덱스는 내림차순, 2차적으로 [0]번째 인덱스는 오름차순으로 정렬되어 있음.
profile
빠굥

0개의 댓글