[python] 코테 대비 알고리즘 모듈 정리

    정렬 arr = [(1,2),(2,3), (1,1)] arr.sort() # 일반적으로 처음인자부터 차례로 정렬 nlogn arr.sort(key=lambda x:x[1],x[0]) # 두번째 인자 우선순위로 정렬 arr.sort(key=lambda x:x[0], reverse=True) # 첫번째 인자 기준으로 반대로 정렬 곱집합, 조합, 순열 from itertools import product product([1,2,3],['a','b','c','d']) # 하나씩 선택하는 모든 케이스(곱집합)가 만들어진다. from itertools import combinations combinations(iterable, r=None) # 조합 구하기 from itertools import permutatio..

    백준 1966 풀이 (프린터 큐, 큐, deque)

    백준 1966 풀이 (프린터 큐, 큐, deque)

    이거 솔직히 풀기 너무나 싫었다. 큐가 왜 어려운지 참.....그래도 정답비율이 55%로 상당히 높길래 안 풀수가 없었다....ㅎ 문제를 간단히 요약하자면 큐형태의 프린터 소프트웨어가 있는데 우선순위대로 처리하도록 만드는 소프트웨어이다. 따라서 우선순위에 따라 처리할 경우 처음에 뽑고자 했던 작업이 몇번째에서 뽑히는지를 알아내는 문제이다. [1 2 3 4] 인경우 3번째인 우선순위 3 작업이 언제 되는지 알고싶다. 우선 4를 먼저 수행하기 위해 다른 값들을 뒤로 미룬다. [4 1 2 3] 으로 변경되고 4를 처리한다. [1 2 3] 으로 변경된다. 그럼 이제 우선순위가 높은 3을 출력하기 위해 앞의 작업을 뒤로 미룬다. [3 1 2] 로 변경되고 3을 출력한다. 그럼 2번째에 출력되는 것이다. 이걸 코드..

    백준 11866 풀이 (요세푸스 문제 0, 큐)

    백준 11866 풀이 (요세푸스 문제 0, 큐)

    이번 문제를 처음 읽었을 때는 상당히 쉽다고 생각했다. 코드로 로직을 작성하는데에는 문제가 없었지만, 문제는 왜 큐를 사용해야 하는지 이해를 하지 못했다. 그래서 코드는 금방 짰으나 문제가 의도하는 바를 이해하지 못했다. 우선은 내가 짠 코드이다. from collections import deque n, k = map(int, input().split()) tmp = [i for i in range(1,n+1)] ys = [] count = 1 i = 0 while len(tmp) != 0: if count == k: print(i, tmp) ys.append(tmp[i]) count=1 tmp.pop(i) if i == len(tmp): i = 0 continue count+=1 if i == len..