programmers/level3 20

[프로그래머스] 자물쇠와 열쇠 (Python)

프로그래머스 level3 [2020 KAKAO BLIND RECRUITMENT] 자물쇠와 열쇠 https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr key를 lock에 하나하나 대보는 완전탐색 문제인 것은 파악했으나, 테스트케이스를 통과하지 못해서 '이것이 취업을 위한 코딩 테스트다' 책의 답지를 참고해서 풀었다. Python code def rotate_a_matrix_by_90_degree(a): n=len(a) m=len(a[0]) result=[[0]*n ..

programmers/level3 2021.08.03

[프로그래머스] 등굣길 (Python)

프로그래머스 level3 [동적계획법(Dynamic Programming)] 등굣길 programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 이 문제는 쉽게 풀 수 있었다. Python code 더보기 def solution(m, n, puddles): answer = 0 graph=[[0]*(m+1) for _ in range(n+1)] for x,y in puddles: graph[y][x]=-1 graph[1][1]..

programmers/level3 2021.05.04

[프로그래머스] 풍선 터트리기 (Python)

프로그래머스 level3 [월간 코드 챌린지 시즌1] 풍선 터트리기 programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 이 문제의 핵심인 현재 숫자를 기준으로 오른쪽의 숫자 중 현재 숫자가 가장 작거나, 왼쪽의 숫자 중 현재 숫자가 가장 작으면 현재 숫자를 최후까지 남기는 것이 가능하다는 규칙은 찾아냈는데, 현재 숫자를 기준으로 오른쪽 숫자중 가장 작은 수를 찾아내는것을 구현하지 못해서 검색을 해서 방법을 찾아보았다. Python code 더보기 def solution(a): n=len(a) if na[i]: answer+=1 lef..

programmers/level3 2021.05.04

[프로그래머스] 섬 연결하기 (python)

프로그래머스 level3 [탐욕법(Greedy)] 섬 연결하기 programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 코딩테스트 책에서 서로소집합 알고리즘을 배우게 돼서, 해당 알고리즘을 사용하여 문제를 풀었다. Python code 더보기 def find_parent(parent, x): if parent[x]!=x: parent[x]=find_parent(parent, parent[x]) return parent[x] def union_parent(parent, a, b): a=find_parent(parent, a) b=f..

programmers/level3 2021.04.28

[프로그래머스] 디스크 컨트롤러 (Python)

프로그래머스 level3 [힙(Heap)] 디스크 컨트롤러 programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 문제를 처음 읽었을 땐 단순하게 생각해서, 처리 시간만 고려해서 코드를 짰는데, 통과가 안돼서 다시 보니 문제 이해를 잘못했다...😅 그래서 문제를 다시 풀었는데, 현재 시간 까지 요청받은 작업 중에 처리시간이 가장 짧은 작업 순서대로 처리를 하면 되는 문제였다. 알고리즘 1. jobs를 요청 시간을 기준으로 정..

programmers/level3 2021.04.16