본문 바로가기
728x90

알고리즘141

[PG/Python] 징검다리 건너기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/64062# 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 📌 문제 접근 방법 처음엔 당연히 효율성에서 0점을 맞을 줄 알면서도 한 명씩 징검다리를 건너는 상황을 구현했다. 역시 효율성을 통과 못하고 찾아봤더니 결국 이분탐색..! 징검다리에 적힌 숫자의 최소와 최대를 시작과 끝으로 정하고 이분탐색으로 풀었다. 근데 사실 아직 answer를 갱신하는 부분이 이해가 잘 안간다... if-else문에서 else문에 answer를 갱신하도록 했더니 테케 2개가 자꾸 틀려서 if문쪽으로 올려줬더니 성공했다.. 나중에 이분탐색을 다시.. 2022. 2. 6.
[PG/Python] 입국심사 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 📌 문제 접근 방법 최소 시간을 구해야하므로 처음에는 최소힙을 이용해서 풀이하였다. i를 현재 심사를 기다리는 사람의 번호라고 하면, 힙에 (i번째 사람의 심사가 끝날 시간, 심사관의 심사 시간)을 push해줬다. 그 후 i를 계속 늘려가며 n이 될 때까지 힙에서 최소 시간을 pop하고 다시 걸린 시간만큼 더해서 push하는 작업을 반복한다. -> 이런 .. 2022. 1. 25.
[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.
[Python] 파이썬을 파이썬답게 - iterable/sequence type 다루기 https://programmers.co.kr/learn/courses/4008 파이썬을 파이썬답게 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr iterable 자신의 멤버를 하나씩 리턴할 수 있는 객체 (반복가능한 객체) list, str, tuple, dictionary 등 [2차원 리스트 행-열 바꾸기] mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = [[], [], []] for i in range(len(mylist)): for j in range(len.. 2022. 1. 15.
728x90