프로그래머스
-
[위클리 챌린지] 9주차알고리즘/프로그래머스 2021. 10. 5. 20:35
https://programmers.co.kr/learn/courses/30/lessons/86971?language=python3 코딩테스트 연습 - 9주차 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 그래프 탐색 문제..? 아무튼 뭐 트리 그래프의 간선을 하나 지워서 두개의 트리를 만들때, 정점이 개수의 차의 최소값을 구하면된다. - 풀이 1. 일단 어떤 간선을 지우는 것이 답인지 모르니까, 하나의 간선을 지운 graph를 만든다. 2. search함수에 graph와, 시작점(삭제한 간선의 정점 중 하나)를 인자로 넘겨준다. 3. stack을 ..
-
[위클리 챌린지] 7주차알고리즘/프로그래머스 2021. 9. 17. 20:43
https://programmers.co.kr/learn/courses/30/lessons/86048 코딩테스트 연습 - 7주차 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 programmers.co.kr - 풀이 1. 현재 입실한 인원이 누구인지를 담는 now_in리스트와 Key가 번호, Value가 각 번호와 만났는지를 체크하는 리스트인 meet딕셔너리를 사용한다. 2. meet딕셔너리를 {번호, [0, 0, 0, ... ,0]} 의 형태로 초기화한다. 3. 만약 enter = [1, 3, 2] 이고, leave = [1, 2, 3] 일 경우... meet딕셔너..
-
[완전탐색] 모의고사 / 소수 찾기 / 카펫알고리즘/프로그래머스 2021. 9. 15. 20:44
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr def solution(answers): case1, case2, case3 = [1,2,3,4,5], [2,1,2,3,2,4,2,5], [3,3,1,1,2,2,4,4,5,5] s = [0, 0, 0] for i in range(len(answers)): if case1[i%5] == answers[i]: s[0] += 1 if case2[i%8] == answ..
-
[스택/큐] 기능개발 / 주식가격알고리즘/프로그래머스 2021. 9. 12. 17:08
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr import math def solution(progresses, speeds): answer = [] arr = [] for i in range(len(progresses)): arr.append(math.ceil((100 - progresses[i])/speeds[i])) temp, cnt = arr[0], 0 for i in arr: if temp ..
-
[정렬] K번째수 / 가장 큰 수 / H-Index알고리즘/프로그래머스 2021. 9. 5. 14:44
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 파이썬으로 매우 쉽게 풀 수 있다. def solution(array, commands): answer = [sorted(array[i[0]-1:i[1]])[i[2]-1] for i in commands] return answer https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는..
-
[해시] 완주하지 못한 선수 / 전화번호 목록 / 위장알고리즘/프로그래머스 2021. 9. 4. 15:56
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr def solution(participant, completion): dic = {} for i in participant: dic.setdefault(i, 0) dic[i] += 1 for i in completion: dic[i] -= 1 for i in dic: if dic[i]==1: return i https://programmers..