본문 바로가기

코테

(85)
[프로그래머스] <배달> 파이썬 programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr def solution(N, road, K): answer = 1 arr = [[500000] * (N+1) for _ in range(N+1)] for i in road : arr[i[0]][i[1]], arr[i[1]][i[0]] = min(arr[i[0]][i[1]],i[2]), min(arr[i[1]][i[0]],i[2]) for i in ra..
[프로그래머스] <실패율> 파이썬 programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr def solution(N, stages): answer = [[0,0,0]] for i in range(1,N+1) : answer.append([0,0,i]) for s in stages : for i in range(1,s+1) : if i = n : p += 1 if s == n : f += 1 answer.append([n,float(f/p)]) temp = sort..
[프로그래머스] <짝지어 제거하기> 파이썬 programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr def solution(s): answer = 0 arr = list(s) stack = [arr[0]] for i in arr[1:] : if not stack : stack.append(i) elif stack[-1] == i : stack.pop() else : stack.append(i) if not stack : answer = 1 return answe..
[프로그래머스] <이중우선순위큐> 파이썬 programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr import heapq def solution(operations): queue = [] for operation in operations : operator, operand = operation.split() operand = int(operand) if operator == 'I' : heapq.heappush(queue, operand) elif queue : if operand > 0 : queue.remove(max(queue)) else : heapq.heappop(queue) if queue : return [queue[-1],queue[0..
[프로그래머스] <징검다리> 파이썬 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..