[프로그래머스] 42884. 단속카메라 C++ / Python 풀이
·
알고리즘 및 데이터 구조/프로그래머스
코딩테스트 연습 → 탐욕법(Greedy) → Lv.3 단속카메라알고리즘 문제를 많이 풀어본 사람은 문제 유형만 봐도 그리디(Greedy) 알고리즘을 사용한다는 것을 바로 판단해야 한다. 필자 또한 비슷한 유형의 문제들을 풀어본 경험으로 인해 그리디를 사용한 문제라는 것을 알았지만, 왜 그리디를 사용하는 것인가? 라는 주입식 교육의 폐해인 의문이 들어 풀이 방법을 함께 살펴보고자 한다.풀이 방법 공식 예시와 함께 문제를 살펴보자. 먼저, 첫 번째 차량은 -20의 위치에서 진입하여 -15의 위치까지 달린다. 현재까지의 단속카메라 위치는 -20 ~ -15 사이의 어디든 설치해도 1개의 카메라만 설치하면 될 것이다.  두 번째 차량은 [-14, -5]의 위치까지 달린다. 그림으로 봤을 때 첫 번째 차량과 겹치는..
[프로그래머스] 12938. 최고의 집합 C++ / Python 풀이
·
알고리즘 및 데이터 구조/프로그래머스
코딩테스트 연습 → 연습문제 → Lv. 3 최고의 집합 풀이 방법결론부터 말하자면 그리디(Greedy) 기법을 사용해야 한다. 집합 내 필요한 원소의 개수 n개가 있을 때, 각각의 원소에 s 값이 골고루 분배 되어야 한다. 즉, 차이가 가장 덜 나는 원소들로 집합을 이루어야 한다는 것이다. 말로 설명하자면 어려우니 예시와 함께 이해해보자. n = 2, s = 9일 때를 보자. 현재 집합에 아무 숫자도 넣지 않았기 때문에 필요한 원소의 개수는 2개이다. 이는 [1, 8], [2, 7], [3, 6], [4, 5]와 같이 분배가 될 수 있는데 각 원소의 차이가 가장 적은 원소 집합은 [4, 5]이다. 그러므로 정답이 [4, 5]가 되는 것이다. 위의 예시만으로는 감이 잡히지 않을 것이다. 다른 예시로 n =..
파이썬의 기본 정렬 및 커스텀 정렬
·
프로그래밍 언어/Python
정렬 기능은 알고리즘 문제 풀이 뿐만 아니라 솔루션 및 웹사이트 등을 개발할 때에도 매우 중요한 기능이다.오늘은 파이썬의 내장함수를 통한 기본 정렬 뿐 아니라 사용자 정의 기준에 따른 커스텀 정렬 방법까지 자세히 알아보고자 한다.파이썬의 기본 정렬파이썬에서 정렬을 수행하는 가장 기본적인 방법은 sorted() 메소드와 list 자료형의sort() 내장 메소드를 사용하는 것이다. 이 두 방법을 정렬된 결과를 메소드 하나로 쉽게 얻을 수 있도록 해준다. 1. sorted() 메소드sorted() 메소드는 원본 리스트는 변경하지 않은 채 정렬된 새로운 리스트를 반환한다. 이 메소드는 리스트 뿐만 아니라 모든 반복 가능한 객체에서 사용할 수가 있다 (리스트, 튜플, 문자열 등). sorted(iterable, ..
파이썬에서 큐(Queue)를 구현하는 방법
·
프로그래밍 언어/Python
LeetCode에서 알고리즘 문제를 푸는 사람들이라면 무조건 한 번 쯤은 접해봤을 TreeNode.Queue를 사용하면 각 노드들의 방향을 알면서 BFS 탐색이 가능하기 때문에오늘의 문제에서는 Python, C++, Java 각기 다른 언어를 사용해 Queue를 사용한 알고리즘 문제를 풀었다.Java를 사용한 큐 구현엔 익숙하지만, 아직 Python으로 구현하는 자료 구조들엔 익숙하지 않아블로그에 포스팅하며 제대로 사용하는 방법을 복기하고자 한다.Queue란 무엇일까 큐는 데이터를 순서대로 처리하기 위해 사용하는 FIFO 구조의 선형 자료 구조이다. 큐의 가장 큰 특징은 FIFO 구조이다. FIFO(피포; First-In First-Out)란 가장 먼저 온 데이터가 가장 먼저 나가고, 가장 늦게 온 데이..
List와 Tuple
·
프로그래밍 언어/Python
최근 파이썬, C++으로 LeetCode로 알고리즘 문제를 해결하고 있다.Pythonic한 코드를 작성하기 위해 파이썬 문법을 학습하던 중, List와 Tuple이 많이 비교되고 있는 것을 알았다. 점프 투 파이썬에 따르면, 튜플은 몇 가지의 점을 제외하고는 리스트와 거의 비슷하다는데리스트와 튜플의 차이가 무엇인지, 주로 어디 쓰지는지를 알아보고자 하여 이 글을 작성한다. List란 무엇일까리스트는 다양한 자료형의 아이템을 여러 개 저장할 수 있는 가변적 데이터 구조이다.따지자면 Java의 ArrayList, C++의 vector와  비슷하다고 볼 수 있는데, 풀어 설명하자면 아래와 같은 특징이 있다. 가변적으로 값을 삽입/삭제할 수 있다.아이템이 삽입된 순서를 유지하여 인덱스를 통해 해당 위치의 값에 ..
유영웅
'Python' 태그의 글 목록