본문 바로가기
728x90

ALGORITHM142

[PG/Python] 2 x n 타일링 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 📌 문제 접근 방법 n이 1일 때부터 경우의 수를 모두 계산해보니 점화식이 f(n) = f(n-1) + f(n-2)가 나왔다. 위의 식을 피보나치 수열이라고 하는데, 이를 재귀로 구현할 경우 시간이 오래걸리기 때문에 메모이제이션을 사용해서 풀이했다. 하지만 시간초과가 나서 질문하기를 살펴보니, 나는 매번 연산을 하는게 시간이 오래걸릴거라고 .. 2022. 1. 24.
[PG/Python] 외벽 점검 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 📌 문제 접근 방법 완전탐색으로 풀이하였다. 시계방향, 반시계방향을 모두 고려해주기 위해서 weak리스트의 요소에 n을 더하여 추가해준다. weak리스트의 원래 원소들만을 출발점으로해서 원래 weak의 길이만큼 슬라이싱하여 queue를 만들어준다. dist를 순열을 사용하여 people에 저장하고 큐의 형태로 만들어준다. people의 0번째에 저장된 .. 2022. 1. 15.
[PG/Python] 합승 택시 요금 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 📌 문제 접근 방법 다익스트라 알고리즘을 사용하여 풀이하였다. 가장 중점이.. 2022. 1. 14.
[PG/Python] 이중우선순위큐 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 📌 문제 접근 방법 최대/최소값을 삭제하기때문에 힙을 사용해야 하나? 생각했지만, 힙 하나로 최대/최소값을 삭제하기는 힘들 것 같아서 일단 리스트로 구현을 해봤다. 문제 그대로 삽입/삭제만 했는데도 시간초과없기 통과가 되었지만, 문제에서 요구하는 풀이는 아닐 것 같아서 다른 풀이를 참고했다. 힙을 하나만 사용하지 않고 최대힙, 최소힙을 모두 사용하면 내가 처음에 생각했던대로 구현이 가능했다. 대신 두 힙에는 같은 값이 중복으로 저장되어있으므로 최대힙, 최소힙 중 하나라도 비게 된다면 두 힙 모두 비게 되는 것이다. 또한 최대힙의 .. 2022. 1. 11.
728x90