본문 바로가기

greedy6

[프로그래머스] 피로도 (Python) https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 그리디 + 완전 탐색으로 풀었다. 던전 총개수를 세고, 최대 던전 개수부터 내려오면서 순열을 만든 다음 모두 탐색하며 조건에 만족하면 바로 return 하도록 코드를 작성했다. 나의 풀이 from itertools import permutations def solution(k, dungeons): dungeons_count = len(dungeons) d.. 2021. 11. 1.
[프로그래머스] 단속카메라 (Python) https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,-15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 그렇게 어렵지 않았던 문제였다. 자동차를 정렬하고 카메라 범위를 좁혀가면 풀렸다. 나의 풀이 def solution(routes): answer = 1 check = [-30001,30001] routes.sort() for route in routes: print(check,route) if check[0] 2021. 10. 28.
[프로그래머스] 섬 연결하기(Python) https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 두세 시간 걸려서 풀었던 문제다. 알고리즘을 어떻게 짜야할지 오래 고민했다 내가 짠 알고리즘을 아래 기준으로 설명하겠다. cost = [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] n = 4로 주어졌을 때 일단 각 섬의 정보를 모아놓는 리스트 안에 python set을 통해 각 set에 현재 연결된 섬의 정보를 담는다. island = [set() for _ in range(n)] 다음으로 섬 연결 비용 기준으로 정렬한다. cost.. 2021. 10. 28.
[프로그래머스] 구명보트 (Python) https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 사람의 무게를 정렬하고 가장 무거운 사람과 가장 가벼운 사람의 무게를 더해서 limit를 넘지 않으면 answer를 추가시키는 방식으로 코드를 작성했다. def solution(people, limit): people.sort(reverse=True) right = len(people)-1 answer = 0 for i in range.. 2021. 10. 27.
[프로그래머스] 큰 수 만들기(Python) https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 이것저것 여러 풀이 방식으로 풀었다. 나머지 테스트는 모두 통과했지만 10번에서 시간 초과가 났다 def solution(number, k): result = len(number)-k index = 0 answer = '' while k>0 and len(answer)!=result: max_index = number[index:index+k+1].find(max(number[index:index+k+1])) answer+=number[index:index+k+1][max_index] k-=max_index index += max_inde.. 2021. 10. 27.
[프로그래머스] 조이스틱(Python) https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 이 문제에서 구현해야 하는 로직은 두 가지다 1. 현재 커서의 알파벳에 따라 이동해야 하는 최소 커서 횟수 계산 2. 현 위치에서 커서를 왼쪽 오른쪽 중 어디로 이동해야 최소 커서 이동인지 계산 알파벳의 총개수는 25개이므로, 위의 12개 까지는 조이스틱을 아래로 아래 12개 까지는 조이스틱을 위로(거꾸로) 이동하면 된다. 'A'의 아스키 코.. 2021. 10. 26.