본문 바로가기

프로그래머스

(29)
[탐욕법] 프로그래머스 L2 '구명보트' (Python) https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr people이 정렬이 되어있지 않으므로 정렬 시킴 3~5 반복 해당 몸무게가 limit의 반 값보다 작고 people의 마지막 몸무게라면 answer에 1을 더하고 반복문 종료 해당 몸무게와 people의 마지막 몸무게를 합한 값이 limit보다 작으면 answer에 1을 더하고 마지막 몸무게 삭제 해당 몸무게와 people의 마지막 ..
[재귀함수] 프로그래머스 L2 '괄호 변환' (Python) https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 균형 잡힌 괄호 문자열과 올바른 괄호 문자열을 확인하는 함수를 각각 생성한다. 결괏값을 도출할 수 있는 조건이 문제에 자세히 쓰여 있으므로 하나씩 코드를 짠다. #1차시도 - 테스트 2,4,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 def solution(p): answer = '' w="" for i in p..
[해시] 프로그래머스 L2 '전화번호 목록' (Python) https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 한 번호가 다른 번호의 접두어인 경우를 확인하면 되므로 정렬시켜서 바로 앞, 뒤만 비교 #1차시도 - 테스트 13 실패, 효율성 1,2,3,4 실패 def solution(phone_book): answer = True dic = dict() for idx,i in enumerate(sorted(phone_book)): dic[i] = idx for i in..
[해시] 프로그래머스 L1 '완주하지 못한 선수' (Python) https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 동명이인을 구분하기 위해 참가자의 이름별로 1씩 더한다. (동명이인이라면 2가 되니까) 완주자 명단에 있는 이름은 1을 뺀다. 완주하지 못한 사람은 한 명뿐이므로 값이 1인 이름을 출력한다. #1차시도 - 정확성 1,3,4,5 효율성 1,2,3,4,5 실패 def solution(participant, completion): answer = ..
[완전탐색] 프로그래머스 L2 '소수 찾기' (Python) https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 종이 조각으로 여러 개의 조합을 만들어야 하므로 itertools 라이브러리 사용 중복된 숫자가 나올 수 있으므로 set() 사용 소수는 에라토스테네스의 체 공식으로 찾음 from itertools import permutations from math import sqrt def solution(numbers): s = set() for i in ..
[완전탐색] 프로그래머스 L1 '모의고사' (Python) https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 반복문 사용. 패턴을 answers 길이에 맞춤. 문제가 1개~10,000개일 경우 계산 채점할 수 있는 변수 필요. 가장 많이 맞춘 사람 걸러내기 #1차 시도 --> 몇개의 테스트케이스 실패 def solution(answers): answer = [] a1, a2, a3 = [],[],[] j=1 for i in answers: if i==j: a1.appe..
[큐] 프로그래머스 L2 '다리를 지나는 트럭' (Python) https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr Queue 사용 def solution(bridge_length, weight, truck_weights): Q = [0] * bridge_length total_weight = 0 time = 0 while truck_weights: total_weight -= Q.pop(0) if total_weight + truck_weights..
[큐] 프로그래머스 L2 '기능개발' (Python) https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 100이 될 때까지 while문? speeds를 100이 될 때까지 더하는 for문? progresses가 100이 되면 answer +=1 하고 순서대로 삭제 #1차시도 : 1,5 런타임에러, 2 실패 def solution(progresses, speeds): queue = [] finish = [] for i in range(len(progresse..

LIST