🕹 알고리즘/👨🏼‍🔬 프로그래머스

    프로그래머스 :: 개인정보 수집 유효기간 (Python)

    프로그래머스 :: 개인정보 수집 유효기간 (Python)

    문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 문제는 2023 카카오 공채 1번 문제. 문제에서 개인정보를 수집한 날짜와 약관별 개인정보 보관 가능기간을 준다. 주어진 오늘날짜와 비교해서 파기해야 하는 개인정보 번호를 출력하는 문제. “날짜 문제는 단위를 통일해서 풀어라” - 내가 좋아하는 개발자의 명언. 그 말 그대로 년,월,일 포맷으로 되어 있는 날짜정보를 일수로 통일하면 바로 풀리는 문제다. 모든 달이 28일이므로..

    프로그래머스 :: 보석 쇼핑 (Python)

    프로그래머스 :: 보석 쇼핑 (Python)

    문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 문제에서 주어진 보석 배열을 완전 탐색해야하는 문제이다. 그런데 N 이 10만..? 일반적인 탐색 알고리즘은 O(N^2) 이기 때문에, O(N) 인 투포인터를 써야 하나 생각했다. 여기서 left, right 두 포인터를 인덱스로 두고 그 사이에 어떤 보석들이 있는지를 확인해야 하는데, 이 부분에서 효율성 점수가 깎일 수 있다. 어차피 포인터를 하나씩 증가시키기 때문에 gem..

    프로그래머스 :: 두 큐 합 같게 만들기 (Python)

    프로그래머스 :: 두 큐 합 같게 만들기 (Python)

    문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 먼저 큐에서 pop 을 할 때 pop(0) 보다 deque 의 popleft() 가 시간복잡도가 작기 때문에 deque 를 사용했다. 문제를 풀 때는 두 가지를 고려했다. 정답을 찾는 방법 반복문 종료 시점 예시를 보면서 Greedy 하게 합이 더 큰 큐에서 합이 작은 큐로 원소를 옮겨나가면 된다고 생각했다. 그럼 이제 언제까지 반복문을 돌아야 할지가 중요한데, 예시에서 q..