본문 바로가기

Engineering WIKI/Programmers71

[프로그래머스] 나머지가 1이 되는 수 찾기 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 내 풀이 def solution(n): answer = 1 while True: if n % answer == 1: break answer += 1 return answer 다른 방법 def solution(n): answer = min([x for x in range(1, n+1) if n % x == 1]) return answer 2022. 4. 6.
[프로그래머스] 최소 직사각형 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 아이디어 각 w, h를 비교해서 둘 중 큰 값을 한 리스트에 넣고 나머지를 리스트로 만든다. 두 개의 리스트 중 가장 큰 값을 뽑아서 곱하면 된다. w, h 리스트를 만든다. for문을 돌면서 w, h 중 큰 값은 w리스트 작은 값은 h리스트에 담는다. 두 개의 리스트에서 가장 큰 값이 곱한 값이 답이다. 다른 사람 풀이 1 def solution(sizes): w = [] h = [] for i in range(len(sizes)): if sizes[i][0] >.. 2022. 4. 5.
[프로그래머스] 두 개 뽑아서 더하기 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 내 풀이 from itertools import permutations def solution(numbers): answer = [] nPr = permutations(numbers, 2) for i in list(nPr): if sum(i) in answer: continue answer.append(sum(i)) return sorted(answer) 다른 방법 from itertools import combi.. 2022. 4. 5.
[프로그래머스] 예산 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 내 풀이 def solution(d, budget): d = sorted(d) answer = 0 for i in d: if i 2022. 4. 5.
[프로그래머스] 3진법 뒤집기 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 내 풀이 def solution(n): answer = 0 three_list = list() while n != 0: three_list.append(n % 3) n = int(n / 3) if n == 0: break pow_val = len(three_list) - 1 for i in three_list: answer += i * pow(3, pow_val) pow_val -= 1 return answer 다른.. 2022. 4. 5.
[프로그래머스] 실패율 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 내 풀이 (런타임 에러 몇개 발생 10문제 중에 7문제 맞음) from collections import Counter def solution(N, stages): stages_count = Counter(stages) people = len(stages) answer = [] fail_list = {} for i in range(1, N+1): fail_list[i] = stages_count[i] / people people = people - stages_.. 2022. 4. 2.