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

백준 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..