알고리즘/Python

알고리즘/Python

[python] 프로그래머스 - 구명보트

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 더보기 첫 번째 풀이 : 효율성 테스트 실패 def solution(people, limit): people.sort() count = 0 while len(people) > 0: sum_w = 0 max_val = people.pop() sum_w += max_val for index in ra..

알고리즘/Python

[python] 프로그래머스 - 카펫

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 더보기 풀이 def solution(brown, yellow): import math #yellow의 약수 중 각 +2하고 -4 한게 brown과 같은지 확인 divisors = [] for i in range(1, int(math.sqrt(yellow) + 1)): if yellow % i == 0: divisors...

알고리즘/Python

[python] 프로그래머스 - H-Index

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 더보기 풀이 def solution(citations): citations.sort(reverse = True) for index in range(len(citations)): subscribe_count = citations[index] if index + 1 > subscribe_coun..

알고리즘/Python

[python] 프로그래머스 - 가장 큰 수

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 아니 이거 혹시 정렬 문제가 아니라 테스트 케이스 다 잡아내는게 목적인 문젠가요 아니 그것도 실력이긴 한데 너무 어려웡 더보기 첫 번째 풀이 : 망함ㅋ def solution(numbers): #정렬 기준을 잡는 문제 #어떻게 해야 최댓값이 나올까? #최댓값이..

알고리즘/Python

[python] 프로그래머스 - 더 맵게

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr Heap을 사용하면 금방 풀리는데 분석하는데 오래 걸렸다. 우선순위 Queue를 사용해서 풀기도 하던데 그건 안해봄 더보기 첫 번째 풀이 : Heap 사용 def solution(scoville, K): import heapq min_heap = [] for i in scoville: heapq.heappush..

알고리즘/Python

[python] 프로그래머스 - 주식 가격

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42584 문제 설명이 왜 다 이렇지. 문제 자체가 좀 어거지로 만든 느낌이 있어서 설명하려고 해도 좀 곤란할 것 같긴 하다. 예제보면서 이해하는게 답인 듯. 더보기 첫 번째 풀이 : 이중 for문 def solution(prices): answer = [] for index in range(len(prices) - 1): count = 0 for index2 in range(index + 1, len(prices)): if prices[index] 0 else -1 now_price = prices[time] if len(stack) == 0 or prev_price 0 a..

알고리즘/Python

[python] 프로그래머스 - 기능 개발

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42586 스택 & 큐 부분에 있는 문제인데, 스택&큐를 썼다고 할 수 있을까? 싶긴하다. 사실 스택&큐 부분 문제는 스택&큐의 특성을 이용하는 구현 문제(피지컬 문제)에 가까운 듯 하다. 더보기 더보기 풀이 def solution(progresses, speeds): answer = [] while True: if len(progresses) == 0: break for index in range(len(progresses)): progresses[index] += speeds[index] if progresses[0] >= 100: count = 0 while True: ..

알고리즘/Python

[python] 프로그래머스 - 다리를 지나는 트럭

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42583 트럭은 뚠뚠 오늘도 뚠뚠.. 1일 1문제인데...이 문제 고민하는데 시간을 너무 써서 늦었다. 그리고 수강신청도 망해서 멘탈이 나가있던터라 미뤘다. ㅎ '나 진짜 이런 문제 못 푸는구나' 깨달은 문제이다. 풀려고 봤을 때 머릿 속이 엄청 복잡해지면서 막막했다. 막 다양한 부분에서 다양한 방법들이 떠오르면서 어떤 방식을 선택해서 풀어야 효율적으로 풀릴지 그리고 그런 방법을 코드상에서 어떻게 구현하면 좋을지 바로 그려지지 않으니 시작을 하지 못했다. 예전 수능 공부 할 때, 수학 문제에서도 문제를 어떻게 풀어나가야하는지 생각하는 과정에서 너무 여러가지 방법이 떠오르고 ..

알고리즘/Python

[python] 프로그래머스 - 위장

출처 : 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 왜 옷을 다 안 입니. 바바리맨도 아니고. 정말 단순한 생각이 문제 풀이의 실마리. 더보기 첫 번째 풀이 : 테스트 케이스1 시간 초과 from itertools import combinations def solution(clothes): closet = {} answer = 0 for cloth in clothes: if cloth[1] not in closet: closet[cloth[1]] = 1 else: closet[cloth[1]] += 1 for category in range(len(closet..

알고리즘/Python

[python] 프로그래머스 - 전화번호 목록

출처 : 프로그래머스, https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr LV2로 들어오니까 별 생각 없이 풀면 되던 LV1에 비해 갑자기 난이도가 확 상승한 느낌이라 LV2를 본격적으로 풀어보기 전에 코딩테스트 고득점 Kit에서 분야별로 정해서 LV2까지 문제를 모두 풀어보고 LV2 문제를 풀어보려고 계획을 잡고, 해싱부터 시작하였다. 접두사랑 접두어라는 용어가 나오는데 접두사 : 어떤 단어의 앞에 붙어 ..

알고리즘/Python

[python] 프로그래머스 - 나머지가 1이 되는 수 찾기

출처 : https://programmers.co.kr/learn/courses/30/lessons/87389 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 더보기 #구하려는 수에 -1한 수의 약수 중 1을 제외하고 가장 작은 수를 return from math import sqrt def isDivider(dividend): for i in range(2, int(sqrt(dividend)) + 1): if dividend % i == 0: return i d..

알고리즘/Python

[python] 프로그래머스 - 로또의 최고 순위와 최저 순위

출처 : 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 단순 계산 문제인데 왜인지 오래 걸렸다. 더보기 def solution(lottos, win_nums): zero = 0 correct = 0 for my_index in range(6): if lottos[my_index] == 0: zero += 1 continue for..

제주도랏맨
'알고리즘/Python' 카테고리의 글 목록 (12 Page)