본문 바로가기

코딩테스트12

[프로그래머스] 네트워크(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.
#1 Python 코딩테스트 대비 여러 Tip 정리 https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 이 포스트는 위의 영상을 보고 제가 필요하다고 생각된 부분을 정리한 포스팅 입니다. - 실수형 데이터의 경우, 컴퓨터 특성상 4바이트나 8바이트로 실수를 표현하기 때문에 근사치를 표현하여 정확하게 떨어지지 않는 경우가 많다. - 따라서 round() 함수를 사용해서 소수점 반올림을 하는 방법이 권장된다. a = 123.456 print(round(a, 2)) # 123.46 리스트를 초기화 할 때 리스트 컴프리헨션을 활용해서 초기화 하면 편함 # 1차원 리스트 array = [0]*3 # [0,0,0] # 2차원 리스트 N * M N, M =.. 2021. 10. 7.
[프로그래머스] 등굣길(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.
[프로그래머스] 징검다리(Python) https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr def solution(distance, rocks, n): result =0 rocks.extend([0,distance]) # 0 distance 추가 rocks.sort() # 정렬 start, end = 0, distance while start=mid: temp=i else: cnt+=1 if cnt>n+1: end=mid-1 else: s.. 2021. 8. 12.
[프로그래머스] 다단계 칫솔 판매(Python) https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr def cal_dividend(seller,amount,member_dict={}): dividend = int(amount*0.1) # 배당금 10% 1미만 if dividend < 1 : member_dict[seller][1] += amount # 그대로 순이익 # 배당금 10% 1이상 and 추천인 X elif member_dict[seller][0.. 2021. 8. 10.