파이썬50 네트워크 - Python, DFS, BFS, Union_find https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 - 나의 생각이게 왜 Lv.3일까? 코드def solution(n, computers): def dfs(node): visited[node] = True for neighbor, connected in enumerate(computers[node]): if connected and not visited[neighbor]: dfs(neighbor) visi.. 2024. 11. 21. 여행 경로 - Python, dfs, 히에로홀드 경로(Eulerian Path) https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 - 나의 생각point 1. 출발지별 도착지를 저장할 때 알파벳을 내림차순으로 정렬 ==> 그래야 pop할때 알파벳 순으로 뽑아낼 수 있음 point 2. 기록한 여행 순서를 역순으로 반환 이런 기록 문제에 자주 쓰이는 방식 DFS 탐색 과정DFS는 재귀적으로 출발지에서 가능한 도착지로 이동하며 경로를 탐색합니다. 1. 가능한 경로가 있으면 계속 깊이 들어갑니다.2. 더 이상 이동할 경로가 없으면 "후퇴"합니다. 후퇴 시, 탐색이 완료.. 2024. 11. 20. 야근 지수 - Python, heap https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 - 나의 생각힙으로 변환하기 전에 주어진 작업량을 음수로 변환한다. 이럴 경우 최대값이 최소값으로 인식되기 때문이다. [3, 4, 5] -> [-5, -4, -3] 그 뒤는 그러면 간단하다 주어진 n만큼 돌면서 최소값을 pop하고 +1해서 힙에 넣어준다 그 후 제곱하면서 더해주면 끝이다. 코드 import heapqdef solution(n, works): if sum(works) 2024. 11. 17. 더 맵게 - Python, heap https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 - 나의 생각Heap을 사용하면 쉽게 해결되는 문제였다. 주어진 리스트를 힙으로 변환 반복문을 돌면서 힙의 가장 낮은 값이 K보다 크며 종료 작다면 두번째 작은 값을 가져와서 규칙에 맞게 섞어준다. 이걸 반복하면 된다. 마지막으로 힙의 최솟값이 K보다 큰지 확인해서 성공했는지의 여부를 확인하면 된다. 코드 import heapqdef solution(scoville, K): answer = 0 heapq.heapify(sco.. 2024. 11. 16. 2019 KAKAO BLIND RECRUITMENT > 실패율 -Python, 딕셔너리 정렬 주소 풀이 - 나의 생각스테이지별 실패자 수를 세고 실패율을 구한다. 실패율은 스테이지 실패자가 0인 경우에는 0으로 넣어주면 되고 그 외에는, 스테이지별 실패자를 나머지 사용자로 나눠주면 된다. 이 나머지 사용자는 처음에는 stages의 길이로 시작해서 실패자 수를 빼가면 된다. 처음에는 stage_cnt[idx:]로 구했는데 이럴경우 매번 합을 다시 구해야하기에 누적합 방식으로 바꿨다. 그 후에는 실패율 구한 걸 value 기준으로 정렬해서 key 값을 반환해주면 끝난다. 반환하는 방식이 1. 명시적으로 value값으로 정렬 후, key값으로 정렬 # 실패율 기준 정렬 (내림차순), 실패율이 같으면 스테이지 번호 기준 오름차순sorted_stages = sorted(fail_rates.items().. 2024. 11. 16. 2022 KAKAO BLIND RECRUITMENT > 신고 결과 받기 - Python, defaultdict, set, defaultdict 없이 초기화하기 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 - 나의 생각한 유저가 여러명을 신고 할 수 있지만 중복으로 신고는 못합니다. 그래서 신고자별 신고 대상자를 set으로 중복 제거하면서 dict로 저장합니다. 그 dict를 이용해서 신고 횟수를 세고 그 신고 횟수가 k개 이상이면 카운트를 세주면 됩니다. user_list를 참고하여 dict에 유저명과 위치를 기록합니다. #defaultdict not useuserIndex = {user:idx for idx, user for enu.. 2024. 11. 16. 이전 1 2 3 4 5 6 7 8 9 다음