본문 바로가기

프로그래머스31

[코딩테스트] 프로그래머스 - 프린터 (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.
[코딩테스트] 프로그래머스 - 스킬트리 (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.
[코딩테스트] 프로그래머스 - 주식 가격 (Lv.2) in Python 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 예시: prices = [1,2,3,2,3] return = [4,3,1,1,0] programmers.co.kr/learn/courses/30/lessons/42584 풀이 주어진 배열을 차례대로 살펴보고, 조건에 따라 바로 전 값부터 살펴보는 문제임에 스택이 적절하겠다는 생각이 들었다! 다만 어떤 값을 스택에 저장하느냐에서 많이 애를 먹었는데... ㅜ 결론은 주식의 값이 아니라, 해당 시간을 저장하는 것이 답이었다. 예시: stack = [] answer = [] prices = [1 2 3 1 3] 0초 1초 2초 3초 4초 라고 하자. 0초일 때 비교대상이 없으므로, .. 2021. 2. 14.
[코딩테스트] 프로그래머스 - 멀쩡한 사각형 (Lv.2) in Python 가로의 길이 W (cm) 와 세로의 길이 H (cm) 가 주어질 때, 대각선 하나가 그려져있다. 대각선이 지나가지 않는 1cm x 1cm 정사각형의 개수를 구하라. 처음의 (비효율적인) 풀이 - 처음에는 사각형의 왼쪽 아래 꼭지점을 (0,0)으로 잡고, 대각선을 y = (h/w)*x로 잡아, for i in range(1, h): width = math.floor(w - w / h * i) if width w / h * i 부분에서 실수 계산이 일어나는데, 컴퓨터의 유한한 메모리로 인해 실수는 정확도가 제한된 근사값을 저장하기에 [1], 실수 계산에.. 2021. 2. 14.