본문 바로가기

programmers17

[프로그래머스] 네트워크(Python) https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 참고 https://hkim-data.tistory.com/31?category=1016184 #2-3 Python 코딩테스트 그리디 알고리즘 , DFS & BFS https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 https://www.yout.. 2021. 10. 21.
[프로그래머스] 약수의 개수와 덧셈 (Python) https://programmers.co.kr/learn/courses/30/lessons/77884# 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr import math def solution(left, right): return sum([-num if int(math.sqrt(num)) == math.sqrt(num) else num for num in range(left,right+1)]) - 제곱수만 약수의 개수가 홀수임을 이용하면 된다. ex) 1.. 2021. 9. 29.
[프로그래머스] 위클리 챌린지 8주차 - 최소직사각형 (Python) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 8주차 [[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 def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in sizes) 최대 중 가장 큰 것 , 최소 중 가장 큰 것 2021. 9. 28.
[프로그래머스] 폰캣몬 (Python) https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr def solution(nums): return min(len(nums)//2, len(set(nums))) 2021. 9. 28.
[프로그래머스] 소수 만들기(Python) https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr from itertools import combinations import math def is_prime_number(x): for i in range(2, int(math.sqrt(x)) + 1): if x % i == 0: return False return True def solution(nums): prime_candidate = l.. 2021. 9. 27.
[프로그래머스] 음양 더하기(Python) https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 풀이: def solution(absolutes, signs): return sum(list(map(lambda x,y: x if y==True else -x ,absolutes,signs))) 다른 풀이: def solution(absolutes, signs): return sum(absolutes if sign else -absolut.. 2021. 9. 27.
[프로그래머스] 숫자 문자열과 영단어(Python) https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 내 풀이 : def solution(s): number = {'zero':'0','one':'1','two':'2','three':'3','four':'4','five':'5','six':'6','seven':'7','eight':'8','nine':'9'} answer='' temp='' for i in s: if i.isdecimal(): answ.. 2021. 9. 27.
[프로그래머스] 등굣길(Python) https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr dp = [[0 for w in range(101)] for h in range(101)] _map = [[0 for w in range(101)] for h in range(101)] # 01 state = [[0 for w in range(101)] for h in range(101)] # 012 dxdy = [[1, 0], [0, 1], [-1,.. 2021. 8. 12.
[프로그래머스] 2 x n 타일링(Python) https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr def solution(n): a,b =1,2 for i in range(n-1): a,b = b, a+b return a%1000000007 ''' n(1) = 1 n(2) = 2 n(3) = 3 n(4) = 5 n(5) = n(3) + n(4) ''' 2021. 8. 12.
[프로그래머스] 이중우선순위큐(Python) https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr def solution(operations): answer = [] test=[] for _str in operations: _str=_str.split() if _str[0]=='I': test.append(int(_str[1])) test.sort() else: if test: if _str[1]=='1': test.pop(-1) else: test.pop(0) if test: return [test[-1],test[0]] return [0,0] 2021. 8. 12.
[프로그래머스] 정수삼각형(Python) https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr def solution(triangle): for depth in range(1, len(triangle)): for i, v in enumerate(triangle[depth]): v1 ,v2 = 0,0 if(i>0): v1 = triangle[depth-1][i-1] if(i 2021. 8. 12.
[프로그래머스] 디스크 컨트롤러(Python) https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr import heapq def solution(jobs): ''' 풀이 알고리즘 - 비선점 디스크 스케줄러 1. 2차원 배열을 요청과 작업 순서가 적은대로 정렬. sort활용. 2. 작업 시작 시간과 작업 시간을 고려해서 heapq에 저장 3. count와 latest, time 최신화 ''' jobs.sort() heap = [] count = 0 # 디.. 2021. 8. 12.
[프로그래머스] N으로 표현(Python) https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr ''' DP N 으로 표현. N 과 number 가 주어질 때 N을 최소로 사용하여 number를 표현. ex) 5로 12표현 state(1) = (int(str(N)*1)) state(2) = 5+5 , 5-5 , 5*5 , 5/5 , (int(str(N)*2)) state(3) = state(2)+5 , state(2)-5 , state(2)/5 ,(int(str(N)*3)) state(4) = state(2) + state(2) , ... ''' def solution(N, number): if N == number: return 1 .. 2021. 8. 12.
[프로그래머스] 입국심사(Python) https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr def solution(n, times): start=1 end=min(times)*n answer=end while(end>=start): mid=(start+end)//2 people=0 for i in times: people+=mid//i if people>=n: end=mid-1 if answer>=mid: answer=mid else: start=mid.. 2021. 8. 12.
[프로그래머스] 도둑질(Python) https://programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr def solution(money): # dp[i] = max(dp[i-1], dp[i-2]+money[i]) 점화식 dp = [0]*len(money) #첫번째 집을 터는 경우 dp[0]=money[0] dp[1]=money[0] for i in range(2,len(money)-1): #마지막 집은 털면 안됨 dp[i] = max(dp[i-1], dp[i-2].. 2021. 8. 12.