목록프로그래머스 (18)
호기심 많은 분석가

코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 내 풀이 def solution(array, commands): return [sorted(array[com[0]-1:com[1]])[com[2]-1] for com in commands] 다들 최대한 짧게 코딩하는 것을 좋아해 보여서 한 줄로 코딩해보았다. sort함수가 너무 잘 구현되어 있기 때문에 문제의 설명에 따라 진행하기만 하면 쉽게 해결할 수 있음. 또한 list comprehension은 역시 쓸 때마다 기분이 좋아지는 문법이야.

코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 내 풀이 import heapq def get_sco(d1, d2) : return d1+d2*2 def solution(scoville, K): answer = 0 heapq.heapify(scoville) while True : if len(scoville) == 1 and scoville[0] < K : return -1 first = heapq.heappop(scoville) second = heapq.heappop(scoville) heap..

코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr def solution(bridge_length, weight, truck_weights): gone = [] going = [] ready = truck_weights.copy() answer = 1 go_tm = 1 while truck_weights : if len(going)!=0 and going[0][1] == bridge_length : gone.append(going.pop(0)) if len(gone) == len(tr..

코딩테스트 연습 - 위장 programmers.co.kr from functools import reduce def multiply(arr) : return reduce(lambda x, y : x*y, arr) def solution(clothes): answer = {} for name, spe in clothes : if spe not in answer : answer[spe] = set() answer[spe].add(name) return multiply([len(answer[i])+1 for i in answer])-1 내 풀이 이 문제는 살짝의 수학이 동반되면 쉬워진다. 모든 옷의 경우 입냐, 입지 않냐의 2가지의 경우로 나누어진다. 상의가 n가지 있을 경우 고르는 n가지와 입지 않는 1가지..

코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr def solution(phone_book): answer = True phone_book.sort() for i in range(len(phone_book)-1) : if phone_book[i] == phone_book[i+1][:len(phone_book[i])]: return False return answer 우선 sort 문법을 통해 배열을 앞자리 크기 순으로 정렬해준다. 그러면 ["12", "124", "1235"] -> ["12", "1235"..

코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr from collections import Counter def solution(participant, completion): ans = Counter(participant)-Counter(completion) answer = list(ans.elements())[0] return answer 처음 봤을 때 가장 먼저 Counter 문법을 떠올리긴 했지만, Counter 결과끼리 뺄셈 연산이 되는지 몰라서 for문으로 풀었다. for문은 역시..

포스팅 개요 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 GROUP BY 파트의 문제들을 기록해두었습니다. 그 전 문제들은 2021.05.06 - [Coding Test & Algorithm] - [SQL] 프로그래머스 Coding_Test / SUM, MAX, MIN 포스팅에서 확인할 수 있습니다. 포스팅 본문 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다. TABLE 설명 1. 고양이와 개는 몇 마리 있을까 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count F..

포스팅 개요 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. SELECT 파트의 문제들 중 앞 파트를 기록해두었습니다. 포스팅 본문 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다. TABLE 설명 1. 모든 레코드 조회하기 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다. SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_INS.ANIMAL_ID; 모든 레코드를 불러오기 위해 * 를 사용했고, ANIMAL_ID로 정렬해주기 위해 ORDER BY를 사용함 2. 역순 정렬하기 동물 보호소에 들어온 모든 동물의 이름과 보호 시작..