본문 바로가기
728x90

ALGORITHM/PROGRAMMERS41

[PG/Python] 가장 먼 노드 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 📌 문제 접근 방법 인접 리스트를 활용해서 그래프 정보를 저장해준 뒤 bfs를 사용했다. bfs에서 방문체크를 할 때, 1번 노드와의 거리를 저장해줬다. (가장 먼 거리가 1일 경우에도 1번 노드는 포함되지 않아야하므로 1번 노드는 -1로 방문체크를 해줬다.) bfs 탐색이 끝난 후, visited를 순회하면서 거리가 가장 먼 노드의 개수를 세어 반환한다. 📌 코드 from collections import deque de.. 2021. 12. 9.
[PG/Python] 기능개발 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 📌 문제 접근 방법 먼저 progresses와 speeds를 queue로 만들어줬다. progresses가 빌 때까지 작업과 배포를 반복한다. 작업은 progresses의 0번째 작업과 speeds의 0번째 속도를 더해서 progresses의 마지막에 다시 push해줬다. 배포는 progresses를 순회하며 앞에서부터 작업량이 100이 넘은 작.. 2021. 12. 9.
[PG/Python] 불량 사용자 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 📌 문제 접근 방법 banned_id를 하나씩 순회하며 banned_id가 될 수 있는 후보 리스트를 able_banned에 저장했다. 후보 리스트를 하나씩 순회하며 재귀를 이용해서 불량 사용자 리스트를 만들었다. 중복을 체크해주기 위해서 sort한 후 answer에 저장했다. 불량 사용자 리스트의 경우의 수가 저장된 answer의 길이를 반환한다. 📌.. 2021. 12. 8.
[PG/Python] 큰 수 만들기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 📌 문제 접근 방법 처음엔 숫자의 길이에서 k만큼을 빼서 필요한 만큼 숫자를 뽑아내는 방식으로 코드를 짰다. 8, 10번에서 시간초과가 나서 슬라이싱을 deque의 popleft로 바꿔봤는데도 시간초과가 났다. 결국 해결하지 못하고 구글링...😅 스택을 활용한 방법으로 바꿨다! 스택에 숫자를 하나씩 넣고 만약 push하려는 숫자가 스택의 마지막 숫자보다 작다면 스택의 마지막 숫자가 크거나 같아질 때까지 pop을 한다. 반복문이 끝나고 원하는 길이만큼 스택을 슬라이싱해서 answer에 저장한다. 📌 코드 from collection.. 2021. 12. 2.
728x90