반응형

전체 글 78

[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
반응형