반응형

전체 글 77

[leetcode] 169. Majority Element

문제 배열에서 특정 요소가 과반수 이상 등장하는 경우 그 요소를 찾는 문제입니다. 과반수 요소는 배열의 길이 n의 절반 이상 등장하는 요소로 정의됩니다. 주어진 배열 nums에서 과반수 요소를 찾는 문제입니다. 과반수 요소는 항상 존재한다고 가정합니다.  풀이해당 문제는 Hash Map를 이용해서 풀 수 있습니다. 하지만 이 문제의 추가 조건으로 로 “문제를 O(n) 시간 복잡도와 O(1) 공간 복잡도로 해결할 수 있는지”가 주어졌습니다. Hash Map를 이용하면 공간복잡도가 O(n)으로 해당 조건을 만족할 수 없습니다. 해당 조건에 맞춰 문제를 해결하려면  Boyer–Moore majority vote algorithm를 이용하여 풀 수 있습니다.Boyer–Moore majority vote algo..

알고리즘 2024.10.27

GitLab CI 특정 브랜치에서만 파이프라인 실행 (workflow)

GitLab 파이프라인에서 특정 브랜치만 빌드 및 테스트를 실행하도록 설정하려면, GitLab의 CI/CD 파이프라인에서 workflow와 rules를 사용하여 제어할 수 있습니다. 이를 통해 불필요한 브랜치에서의 파이프라인 실행을 방지하고, 파이프라인 자원을 효율적으로 사용할 수 있습니다.  예시기본적으로 GitLab CI는 모든 브랜치에서 커밋이 발생하면 파이프라인을 실행합니다. 하지만 특정 브랜치에서만 파이프라인을 실행하고 싶다면, 다음과 같은 workflow와 rules를 설정할 수 있습니다.  workflow: rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' when: always - when: never위 설정은 GitLa..

CI・CD 2024.09.05

[프로그래머스] 체육복

문제풀이level1 문제답게 쉬운 문제입니다.여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있으므로 중복된 요소는 제거합니다. 체육복을 빌릴 수 있는 학생을 찾습니다.최종적으로 수업을 들을 수 있는 학생 수를 구합니다.  코드그리디 문제답게 처음에는 좀 멍청하게 풀고 이후에 개선하였습니다. 초기 풀이법초기에는 lost와 reserve 리스트를 반복하면서 일치하는 항목을 제거하는 방식을 사용했었습니다.그 후, lost 리스트의 학생들에게 체육복을 빌려줄 수 있는 학생을 reserve 리스트에서 찾아 제거하는 방식으로 문제를 해결했습니다.def solution(n, lost, reserve): reserve.sort() lost.sort() remove_count = 0 to_re..

알고리즘 2023.08.09

[Python] Understanding and Using Sets in Python

파이썬의 set은 중복된 값을 허용하지 않는, 순서가 없는 컬렉션 자료형입니다. 이러한 특성으로 인해 set은 데이터 처리 작업에서 유용하게 사용되며, 집합 연산을 수행하는 데에도 적합합니다. 이 글에서는 set의 기본적인 초기화 방법부터 다양한 집합 연산 및 관련 함수에 대해 알아보겠습니다. 1. 초기화 set을 초기화하는 방법은 여러 가지가 있습니다: # 빈 set 초기화 empty_set = set() # 리스트를 사용한 초기화 fruits = set(["apple", "banana", "cherry"]) # 중복된 값이 있는 리스트를 사용한 초기화 numbers = set([1, 2, 2, 3, 4, 4, 5]) # 결과: {1, 2, 3, 4, 5} 2. 집합 자료형 관련 함수 add() 원소 ..

Python 2023.08.09

[프로그래머스] 여행경로

문제 풀이 1. 주어진 항공권을 도착지를 기준으로 정렬합니다. 2. 항공권 정보를 그래프로 변환합니다. 3. "ICN"에서 시작하여 DFS (깊이 우선 탐색)을 수행하여 경로를 찾습니다. 파이썬을 공부하면서 풀어서 정렬하는 방법에 대해서 새롭게 알게 되었습니다. 다음에 기회가 되면 더 자세히 정리하겠지만 간단하게 살펴보겠습니다. 항공권을 도착지 기준으로 오름차순 정렬을 해야해서 아래와 같이 sorted() 내장함수를 이용했습니다. sorted(tickets, key=lambda x: x[1]) key 매개변수는 정렬 기준을 지정하는 데 사용되며, 여기에는 함수가 전달됩니다. lambda는 파이썬에서 익명 함수를 정의하는 키워드입니다. 익명 함수는 이름 없이 정의되는 간단한 함수입니다. x는 lambda ..

알고리즘 2023.08.08
반응형