'Python' 태그의 글 목록
본문 바로가기

Python9

[프로그래머스 Lv.3] 디스크 컨트롤러 문제 바로가기https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 전략 SJF (Shortest Job First)현재 대기열에 있는 작업 중 수행 시간이 가장 짧은 작업을 먼저 처리요청이 아직 안 들어온 작업은 대기열에 넣지 않음Heap 사용Python heapq 활용 → 가장 짧은 작업을 O(log n) 시간에 선택 가능현재 시간까지 들어온 작업을 힙에 넣고, 하나씩 꺼내서 처리시간 점프 대기열이 비어 있다면, 아직 안 들어온 작업의 요청 시점으로 시간 점프불필요한 반복 없이 효율적으로 진행 가능.. 2025. 9. 24.
[프로그래머스 Lv.3] 순위 (Feat. 플로이드 워셜 알고리즘) 문제 바로가기https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 플로이드 워셜 알고리즘 (Floyd-Warshall Algorithm)다익스트라 알고리즘 → "한 정점에서 다른 모든 정점까지의 최단 경로만 구할 수 있음"하지만, 만약 모든 정점 쌍 사이의 최단 거리를 구해야한다면?바로 이 물음에서 등장하는 게 플로이드 워셜 알고리즘이다. 플로이드 워셜은 동적 계획법(Dynamic Programming, DP)을 이용해 모든 정점 쌍 간 최단 경로를 효율적으로 구할 수 있다. 특징은 아래와 같다. 음의 가.. 2025. 9. 24.
[프로그래머스 Lv.3] 단어 변환 문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문자열 처리를 위한 하위 함수부터 DFS/BFS함수까지 단계적으로 설계하며 구현하기 좋았던 문제! 코드 구현1) DFS로 구현def find_word_one_diff(curr, word): cnt = 0 for c1, c2 in zip(curr, word): if c1 != c2: cnt += 1 return cntdef dfs(curr, target, words, visited, depth):.. 2025. 9. 12.
[프로그래머스 Lv.3] 가장 먼 노드 문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr BFS 개념 코드 구현할 때 연습하기 좋은 문제! 코드 구현from collections import defaultdict, dequedef bfs(start, graph, n): dist = [-1]*(n+1) dist[start] = 0 q = deque([start]) while q: node = q.popleft() for next in graph[node]: #.. 2025. 9. 12.
[프로그래머스 Lv.3] 정수 삼각형 문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 정답이 어떻게 나오는지 계산하다 보면 규칙이 보입니다. 왼쪽, 오른쪽 끄트머리에 있는 수들은 선택지가 하나입니다.결국은 위에 내려온 값과 더해지게 되는 것이지요. 빨간색으로 체크된 값들은 위에서 내려온 후보값들을 각각 더한 후 최댓값을 선택함으로써 결정됩니다. 이런 과정을 반복하다가 마지막 단의 최댓값(=정답)을 구하면 됩니다. 방법을 알고나니 참 쉽죠? 코드 구현""" solution1 """def solution(triangle): .. 2025. 9. 9.
[프로그래머스 Lv.4] 올바른 괄호의 개수 문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/12929 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제를 어떤 식으로 접근해야 할지 감이 잡히지 않는다면,테스트케이스를 보고 정답값이 어떻게 도출되는지 따라가 봅시다. (이것은 머리 아프다고 포기한 스스로에게 하는 얘기) 인터넷에 검색해 보니 이런 식으로 1,1,2,5,14,... 도출된 값을 카탈란 수라고 하더라고요..? 응용 문제가 꽤나 있으니 이번 기회에 머릿속에 저장합시다. 위키에서 참고한 공식을 토대로, 아래에 계산 과정을 나열해 보았습니다. 코드 구현def solution(n).. 2025. 9. 9.