본문 바로가기

분류 전체보기

(357)
[프로그래머스] <징검다리> 파이썬 programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr def solution(distance, rocks, n): rocks.sort() start, end = 0, distance answer = 0 while start mid : temp = min(temp, dist) current = rocks[i] else : cnt += 1 if cnt > n : end = mid - 1 else : answer = te..
[프로그래머스] <방의 개수> 파이썬 programmers.co.kr/learn/courses/30/lessons/49190# 코딩테스트 연습 - 방의 개수 [6, 6, 6, 4, 4, 4, 2, 2, 2, 0, 0, 0, 1, 6, 5, 5, 3, 6, 0] 3 programmers.co.kr def solution(arrows): move = [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)] edge = [] vertex = [(0,0)] current = (0,0) room = 0 for i in arrows : current = vertex[-1] a,b = current[0] + move[i][0], current[1] + move[i][1] if (a,b) in vertex : i..
[프로그래머스] <순위> 파이썬 programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr def solution(n, results): arr = [[False] * (n+1) for _ in range(n+1)] for i, j in results : arr[i][j] = True for i in range(1,n+1) : for j in range(1, n+1) : if i == j : continue else : if arr[i][j] == True : for k in range(1,n+1) : if k == i : continue if arr[j][k] == Tr..
[프로그래머스] <행렬의 곱셈> 파이썬 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 import numpy as np def solution(arr1, arr2): a = arr1 b = np.array(arr2).reshape(len(arr2), len(arr2[0])).transpose().tolist() answer = [[0] * len(b) for _ in range(len(a))] for i in range(len(a)) : for..
[프로그래머스] <핸드폰 번호 가리기> 파이썬 programmers.co.kr/learn/courses/30/lessons/12948 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr def solution(phone_number): answer = '' for i in range(0, len(phone_number)-4) : answer = answer + '*' answer = answer + phone_number[-4:] return answer 정확성 테스트 테스트 1 〉 통과 (0.00ms, 10.2MB) 테스트 2 〉 통..
[프로그래머스] <예상 대진표> 파이썬 programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr # 4 -> 2 -> 1 # 7 -> 4 -> 2 def solution(n,a,b): answer = 0 while True : answer += 1 if abs(a-b) == 1 : break else : if a % 2 == 0 : a = a/2 else : a = (a+1)/2 if b % 2 == 0 : b = b/2 else : b = (b..
[프로그래머스] <예산> 파이썬 programmers.co.kr/learn/courses/30/lessons/12982# 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr def solution(d, budget) : d.sort() answer = 0 for i in d : if budget-i >= 0 : answer += 1 budget -= i return answer 정확성 테스트 테스트 1 〉 통과 (0.00ms, 10.2MB) 테스트 2 〉 통과 (0.00ms, 10.3MB) 테스트 3 〉 통과 (0.00ms, 10.2MB) 테스트 ..
[프로그래머스] <소수 만들기> 파이썬 programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr from itertools import combinations def solution(nums): nums.sort() m = nums[-1] + nums[-2] + nums[-3] Erathos = [False, False] + [True]*m for i in range(2,m+1) : if Erathos[i] : for j in range(2*i, m+..