프로그래머스/Lv.257 [Python] 프로그래머스 배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이양방향 그래프에서 1번노드를 시작으로, 모든 연결 노드까지의 최단 거리를 구한 후 K 이하의 노드 갯수를 세면 되는 문제입니다. 다익스트라 알고리즘을 사용해 문제를 해결할 수 있습니다. 1. 양방향 그래프 만들기2. 다익스트라 알고리즘 다익스트라 알고리즘은 우선순위 큐를 사용해 구현할 수 있습니다.1. 모든 노드를 최대 거리(INF)로 초기화 합니다.2. heapq에 (키, 값) 형태로 넣어줍니다.. 2024. 9. 27. [Python] 프로그래머스 PCCP 기출 - 석유 시추 https://school.programmers.co.kr/learn/courses/30/lessons/250136?language=python3# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이석유가 묻힌 땅에 대한 정보 land가 주어졌을 때 시추관으로 뽑을 수 있는 최대 석유량을 구하는 문제입니다. 구획별로 매장된 석유량을 알아내야 하므로 BFS 알고리즘을 생각할 수 있습니다.임의 열을 선택했을 때 얻을 수 있는 최대 석유량을 구하기 위해, 각 열을 선택했을 때 얻을 수 있는 석유량을 기록해줘야 합니다. 이는, 석유가 매장된 구획의 최소, 최대열을 .. 2024. 9. 26. [Python] 프로그래머스 최댓값과 최솟값 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이공백으로 구분된 문자열 s가 주어질 때, s 안에서 최댓값과 최솟값을 찾아 (최솟값) (최댓값) 형태로 리턴해야하는 문제입니다. 공백 분리, 오름차순 정렬, 최솟값 최댓값 찾기 순서로 구현해주면 됩니다. 공백분리의 경우 str.split 함수를 사용하여 분리해줍니다. 구분자로는 ' ' 공백을 지정해줍니다.반환된 list 를 정렬해주는데, key=int를 지정하여 정렬해줘야 합니다.정렬된 list의 .. 2024. 9. 20. [Python] 프로그래머스 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이주어진 numbers 에서 가장 큰 수를 만들 수 있도록 numbers를 정렬해야 합니다. s1, s2가 s1+s2 numbers를 string으로 바꾸고 cmp_to_key를 사용하면 쉽게 정렬을 처리할 수 있습니다. from functools import cmp_to_keydef compare(s1, s2): if s1 + s2 2024. 8. 13. [Python] 프로그래머스 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이모든 음식의 scoville 값을 K 이상으로 만들고 싶습니다. K보다 작은 경우 (가장 맵지 않은 음식의 스코빌레 + 두번째로 맵지 않은 음식의 스코빌레 * 2)로 새로운 음식을 만듭니다. 우선순위 큐(최소힙)를 사용하여 문제를 해결할 수 있습니다. scoville를 최소힙으로 만들면 첫번재, 두번째 원소를 사용해 새로운 음식을 만들면 됩니다.이 때, 두번째 원소가.. 2024. 8. 12. [Python] 프로그래머스 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584?language=python3# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이초 단위로 기록된 주식 가격이 주어질 때, 가격이 떨어지지 않은 기간이 몇초인지 리턴해야 하는 문제입니다. 스택에 값을 기록한뒤 새로운 값이 들어오면, 이전에 기록한 값이 새로운 값 보다 크다면 계속해서 pop해주는 방법으로 문제를 해결할 수 있습니다.이 때, pop 하는 값은 몇초간 스택에 남아있었는지 answer에 기록해둡니다. 값을 검사하고 stk에 남아있는 값.. 2024. 8. 11. [Python] 프로그래머스 다리를 지나는 트럭 https://school.programmers.co.kr/learn/courses/30/lessons/42583?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이트럭 여러대(truck_weights)가 다리를 지날때 걸리는 총 시간을 구하려 합니다. 다리에는 최대 bridge_length만큼의 트럭이 올라갈 수 있으며, 올라간 트럭의 무게는 weight 이하여야 합니다. 트럭이 다리에 진입한 시간을 기록하고 그때 트럭의 무게를 기록하여,다음 트럭을 진입시킬 수 있는지와 트럭이 언제 다리를 빠져나오는지 판단하는 알고리즘을 구현.. 2024. 8. 11. [Python] 프로그래머스 프로세스 https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이우선순위 priorities와 몇번째로 실행해야 하는지 알아야 하는 프로세스의 위치 location이 주어질 때,location에 해당하는 프로세스의 실행 순서를 구하는 문제입니다. 항상 우선순위가 가장 높은 작업을 먼저 수행해야 하므로 priorities는 내림차순으로 정렬해줍니다. 작업을 (인덱스, 우선순위) 형태로 모두 큐에 담아주고, 하나씩 빼보면서 작업의 우.. 2024. 8. 8. [Python] 프로그래머스 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이괄호가 올바르게 짝지어져있는지 판별해야 하는 문제입니다. 아이디어는 '('가 나오면 list나 deque에 append 해주고 ')'가 나오면 pop 해주는 것입니다. 모든 문자열에 대해 이를 진행한뒤 list, deque가 비어있는지 판단해주면 올바르게 괄호를 짝지었는지 판별할 수 있습니다. 이때, stk이 비어있는 상태에서 pop 을 하는 경우 에러가 발생하므로.. 2024. 8. 7. [Python] 프로그래머스 기능 개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이현재 진도 progresses 와 진도율 speeds가 주어질 때 배포하는 날에 몇개의 기능을 배포하는지 담아 리턴하는 문제이다. 먼저 배포까지 남은 일수를 모든 progress에 대해 구해준다. 이때 ceil을 사용해 올림처리 한다. (7/3 = 2.33... 이므로 3일만에 처리 가능함) 다음 작업의 배포일까지 남은 일수가 현재 작업보다 크다면, 이때는 지금까지 완료한 기능을 배포할 수 있다는.. 2024. 8. 5. 이전 1 2 3 4 ··· 6 다음