Algorithm/1일 1코테
-
[💕 프로그래머스] 가장 큰 수Algorithm/1일 1코테 2020. 12. 18. 21:43
Q. 가장 큰 수 programmers.co.kr/learn/courses/30/lessons/42746# 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr A. def solution(n): n.sort(key= lambda x: (str(x)*6)[:6], reverse=True) n = map(str, n) return str(int(''.join(n))) n안에 들어있는 각 요소를 6번씩 곱해준뒤 [:6]으로 출력해 갯수를 맞춰준다. 그리고..
-
[💕 프로그래머스] 구명보트Algorithm/1일 1코테 2020. 12. 16. 16:20
문제 programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 답 def solution(people, limit): count = 0 people.sort() while people: p = people.pop(-1) for i, v in enumerate(people): if p+v > limit: break else: people.pop(i) break count += 1 return count 테스..
-
[💕 프로그래머스] 스킬트리Algorithm/1일 1코테 2020. 12. 15. 14:27
Q. programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr A. def solution(sinput, skill_trees): count = len(skill_trees) # 가능한 스킬트리의 갯수 for s in skill_trees: check = '' for v in s: if v in sinput: check += v if check[0] != sinput[0]: count -= 1 break if check not in sinput: count -= 1 return count skill_trees 중에 가능한 스킬트리를 찾아내는 문제 1) count 변수 지정 - 불가능한 스킬트리를 만나면 -1씩 해줄..
-
[💕 프로그래머스] 최솟값 만들기Algorithm/1일 1코테 2020. 12. 15. 13:12
Q. programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr A. def solution(A,B): A.sort() B.sort(reverse=True) s = 0 for a, b in zip(A,B): s += a*b return s A의 최솟값과 B의 최댓값을 더해줘야 s에 최솟값이 누적된다. A는 오름차순 정렬, B는 내림차수 정렬. 그리고 인덱스 0부터 하나씩 뽑아 곱해줘서 누적시킨다.
-
[💕 프로그래머스] 숫자의 표현Algorithm/1일 1코테 2020. 12. 7. 12:27
프로그래머스 2단계 숫자의 표현 Q. 문제 programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr A. 답 def solution(n): a = [i for i in range(1, n+1)] l = 0 r = 1 count = 0 while l < n: s = sum(a[l:r]) if s == n: count += 1 if s < n: r += 1 else: l += 1 return count 풀이 - 1부..
-
[💕 프로그래머스] 카펫Algorithm/1일 1코테 2020. 12. 7. 11:53
프로그래머스 2단계 카펫 Q. 문제 programmers.co.kr/learn/courses/30/lessons/42842# 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr A. 답안 def solution(brown, yellow): # 1번 s = brown + yellow a = [] x = s for _ in range(s): if s%x == 0: if x = 3..
-
[💕 프로그래머스 Python] 타겟 넘버Algorithm/1일 1코테 2020. 12. 6. 21:45
QUESTION. 타겟넘버 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 ANSWER. # 현재까지의 합을 구해주는 함수 def cal(n, l): answer = [] # 빈 리스트 생성 for i in range(len(l)): # l에서 하나씩 꺼낸 뒤 a = l[i] answer.append(a + n) # 더 해주고 append answer.append(a -..
-
[🤷♀️ 백준] 1912번. 연속합Algorithm/1일 1코테 2020. 11. 16. 17:19
문제 www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 시도 # 시간초과 t = int(input()) l = list(map(int, input().split())) left, right = 0, t-1 m = float('-inf') while left l[right]: right = right - 1 else: left = left + 1 s = sum(l[left:right+1]..