2/프로그래머스 50

프로그래머스 연습 문제 - 타겟 넘버

programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr DFS/BFS 문제 def dfs(number, index, numbers, target): sm = 0 if len(numbers) == index: if target == number: return 1 return 0 sm += dfs(number + numbers[index], index+1, numbers, targ..

프로그래머스 연습 문제 - 행렬의 곱셈

programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 연습문제였지만 별로 생각을 안하고 푸는 나에겐 조금 복잡한 문제였다ㄱ-... def solution(arr1, arr2): answer = [[0 for col in range(len(arr2[0]))] for row in range(len(arr1))] for i in range(len(arr1)): for n in range(len(arr2[0])): fo..

프로그래머스 연습 문제 - 더 맵게

programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr heap 문제 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville: scov1 = heapq.heappop(scoville) if scov1 > K: break if len(scoville) == 0: return -1 scov2 = heapq.heap..

프로그래머스 연습 문제 - 문자열 다루기 기본

programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이�� programmers.co.kr def solution(s): answer = False if s.isdigit() == True and (len(s) == 4 or len(s) == 6): answer = True return answer

프로그래머스 연습 문제 - 기능 개발

programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 �� programmers.co.kr 스택/큐 문제 from collections import deque def solution(progresses, speeds): cont = [] answer = [] tr = 0 for x, y in zip(progresses, speeds): c = 0 for i in range(x, 100): if x < 100: x = x + y c += 1 cont.ap..

프로그래머스 연습 문제 - 주식가격

programmers.co.kr/learn/courses/30/lessons/42584# 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 스택/큐 문제 문제를 잘못이해해서 한참동안 고생했다. ~처음 푼 방법 from collections import deque def solution(prices): pricesQ = deque(prices) answer = [] for i in range(len(prices)): price = pricesQ.popleft() sec =..

프로그래머스 연습 문제 - 다트 게임

programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 2018 KAKAO BLIND RECRUITMENT def solution(dartResult): s = [] for x in range(3): scor = '' for i in range(len(dartResult)): st = dartResult[i:i+1] if st.isdigit() == True: scor += dartResult[i:i+1] elif st.isalpha() == True: scor = int(scor) if st == 'S': s.append(scor) elif st == 'D': s.append(scor**2) elif..

프로그래머스 연습 문제 - 두 정수 사이의 합

programmers.co.kr/learn/courses/30/lessons/12912 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr def solution(a, b): answer = 0 if a < b: sm = list(range(a,b+1)) else: sm = list(range(b,a+1)) for i in range(len(sm)): answer += sm[i] return answer

프로그래머스 연습 문제 - 체육복

programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr 그리디 문제 def solution(n, lost, reserve): over = list(set(lost) & set(reserve)) if len(over) > 0: for i in range(len(over)): lost.remove(over[i]) reserve.remove(over[i]) answer = n - len(lost) for i in range(len(lo..

프로그래머스 연습 문제 - 완주하지 못한 선수

programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 해시 문제 def solution(participant, completion): maraton = {} for i in partivipant: maraton[i] = maraton.get(i,0) + 1 for i in completion: maraton[i] -= 1 answer = [k for k,v in maraton.items() if v == ..