5

파이썬 코딩테스트 참고자료 총 정리

나동빈님의 '이것이 코딩테스트다.'를 참고하여 필요한 부분만 따로 정리하였습니다. 복수의 특정 값 삭제하기 1. Python에서 리스트 삭제 시 복잡도는 O(N)이다. 2. 삭제 후 리스트 원소 위치를 조정하기 때문이다. 3. 따라서 여러 개 값은 삭제한다면, 복잡도는 O(N*logN)이다. 리스트 컴프리헨션을 활용해 O(N)으로 모든 특정값을 삭제할 수 있다. a=[1,2,3,4,5,5,5] remove_set={3,5} result = [i for i in a if i not in remove_set] print(result) 튜플 자료형 튜플 자료형의 특징과 시간복잡도 1. 튜플은 그래프 알고리즘 구현 시 자주 사용된다. 2. 다익스트라 최단 경로 알고리즘처럼 최단 경로를 찾아주는 알고리즘 3. 다..

알고리즘 2021.11.01

프로그래머스 - 기능 개발 (스택,큐)

🔸 문제접근방식 progresses, speeds를 큐에 넣는다. progresses의 0번째 값이 100이상이면 꺼낸다. speeds도 progress 꺼낼 때 0번째부터 함께 꺼낸다. 1일마다 speeds만큼 progresses를 더한다. progresses 원소를 모두 꺼낼 때까지 2-3을 반복한다. 💧 Source Code from collections import deque def solution(progresses, speeds): ''' https://programmers.co.kr/learn/courses/30/lessons/42586 Notes: 1. progresses를 큐에 넣고 100이상이면 꺼낸다. 2. 1일마다 speeds만큼 progresses를 더한다. 3. 하루마다 1,2번..

알고리즘 2021.06.25

프로그래머스 - 프린터(스택,큐)

🔸 문제접근방식 priorities를 위치를 저장하는 값과 함께 큐에 넣는다. 더 큰 값이 있다면 0번째 값을 맨 뒤로 보낸다. 더 큰 값이 없다면 해당 값을 출력하고 answer를 1증가시킨다. 해당 위치의 값이 location이라면 answer를 반환한다. 💧 Source Code from collections import deque def solution(priorities, location): '''https://programmers.co.kr/learn/courses/30/lessons/42587 Notes: 1. priorities의 0번째보다 더 큰 값이 있는지 확인한다. 2. 더 큰 값이 있다면 0번째값을 맨 뒤로 보낸다. 3. 더 큰 값이 없다면 해당 값을 출력한다. Args: prior..

알고리즘 2021.06.24

백준 11866 요세푸스 문제풀이

📌문제설명 📌문제접근방식 문제를 보자마자 들었던 생각은 원형 큐 자료구조를 이용해야겠다였다. 이유는 원을 계속해서 돌면서 k번째 사람들 제외해나가기 때문이었다. 하지만 원형큐로 구현할 경우 인덱스를 계속해서 바꿔주어야했다. 따라서 큐를 순회하며 방문한 값을 맨 뒤로 이동시켜주도록 구현했다. 📌문제풀이 소스코드 import sys from collections import deque n, target = map(int, sys.stdin.readline().rstrip().split()) data = deque() for i in range(1, n+1): data.append(i) def solution(target, data): result = [] i = 1 while data: if i==targe..

알고리즘 2021.03.23