분류 전체보기
-
[💕 프로그래머스] 소수 만들기Algorithm/1일 1코테 2020. 12. 19. 19:47
프로그래머스 2단계 소수 만들기 문제 programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 답 import itertools def solution(nums): # 3가지 수를 이용하라고 했으므로 per~함수를 통해 3개의 조합들을 저장한다. nums = map(str, nums) n = list(itertools.permutations(nums, 3)) # dictionary에는 총 더한값과 그 수를 구성하..
-
[💕 프로그래머스] 소수 찾기Algorithm/1일 1코테 2020. 12. 19. 18:22
프로그래머스 2단계 🔫소수 찾기🔫 문제 programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 내 답 - 1차시도 permutation 함수를 이용해 모든 경우의 수 저장, 1단위 숫자는 안나와서 더해줌. l에서 하나씩 뽑아서 나머지가 0이면 count를 더해줌. count가 1보다 크면 소수가 아니라는 뜻이므로 1인 경우에만 answer에 더해줌 import itertools def solution(numbers)..
-
[💕 프로그래머스] 가장 큰 수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/케로베로스 2020. 12. 14. 09:34
프로그래머스 풀이 Q. 오픈채팅방 def solution(record): id_dict = {} # id와 닉네임 저장 dict # 아이디: 닉네임 형태로 저장한다. 최종적으로는 바뀐 닉네임이 저장되어 있음. for r in record: a = list(r.split()) if len(a) == 3: id_dict[a[1]] = a[2] # a[1]은 아이디 값 저장, enter/leave에 따라 문장 저장 result = [] for r in record: a = list(r.split()) if a[0] == 'Enter': result.append(id_dict[a[1]]+'님이 들어왔습니다.') elif a[0] == 'Leave': result.append(id_dict[a[1]]+'님이 나갔..
-
[🐉 백준 9단계] 수학 2Algorithm/케로베로스 2020. 12. 13. 22:55
백준 9단계 수학 2 1978 n=input() l=list(map(int, input().split())) answer = 0 for i in l: count = 0 for j in range(1, i+1): if i == 1: break if i%j == 0: count += 1 if count == 2: answer += 1 print(answer) 2581 import math while True: n = int(input()) if n == 0: break count = 0 for i in range(n+1, 2*n+1): if i == 1: continue elif i == 2: count += 1 continue else: for j in range(2, int(math.sqrt(i))+1)..