본문 바로가기

Python36

[코딩테스트] 프로그래머스 - 기능 개발 (Lv.2) in Python 파이썬 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return. programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 - 일단 각 기능별로 완성되기 위해 걸리는 시간은 # progress + speed * days >= 100 days = math.ceil((100 - progre.. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 프린터 (Lv.2) in Python 프린터 인쇄 순서 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return. programmers.co.kr/learn/courses/30/lessons/42587 풀이 - 배열의 앞에서 원소를 꺼내고, 그 원소가 뒤로 간다는 점이 원형 큐를 떠올리게 했다. 참고 - piaflu.tistory.c.. 2021. 2. 14.
[자료구조] 파이썬의 deque - 양방향 큐, 원형 큐 구현 list가 [1,2,3,4,5]로 주어질 때, 배열의 끝에서 원소 추출하는 list.pop() 후에는 [1 ,2 ,3, 4]로 재정렬이 필요 없지만 (O(1)), 배열의 시작에서 추출하는 list.pop(0) 후에는 [2, 3, 4, 5]로 원소를 한 칸씩 옮겨주는 작업이 필요해, 시간 복잡도는 O(n)이 된다. list의 앞과 뒤 모두에서 원소의 추가와 삭제가 일어난다면, 이런 이유로 양방향 큐, 혹은 원형 큐를 사용하는 것이 더 이익이다. 파이썬에는 이를 이미 구현한 라이브러리가 있다. collections 모듈 - deque (Doubley-Ended Queue) deque는 덱이라고 읽으면 된단다. from collections import deque # declare queue queue = d.. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 스킬트리 (Lv.2) in Python 스킬트리 후보들을 담은 배열 skill_trees와, 선행스킬순서 skill이 매개변수로 주어질 때, 가능한 스킬트리 갯수를 return. 예시: skills = "CBD" skill_trees = ["BACDE", "CBADF", "AECB", "BDA"] answer = 2 programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 풀이 - 각각의 스킬트리 후보를 봤을 때, skills에 있는 알파벳들이 순서대로 나타나면 가능한 스킬트리이다. 파이썬 구현 def solution(skill, skill_trees): imposs = 0 # count the number of impossible skill trees.. 2021. 2. 14.