공부하고 기록하는, 경제학과 출신 개발자의 노트

투포인터 5

[Python] 프로그래머스. 2021 카카오 recruit - 광고 삽입 (Level 3)

programmers.co.kr/learn/courses/30/lessons/72414#fn1 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 누적합 + 투 포인터를 활용해서 풀 수 있는 문제. 어떻게 적용해야 할지 감이 안 와서... 공식풀이와 풀이포스트를 참고했다.

[Python] LeetCode 3. Longest Substring without repeating characters

leetcode.com/problems/longest-substring-without-repeating-characters/ Longest Substring Without Repeating Characters - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 중복 문자열 없는 가장 긴 부분문자열 구하기. 슬라이딩 윈도우 + 투 포인터로 해결이 가능하다. 아래 풀이는 이 책의 코드를 참고했다. 파이썬 알고리즘 인터뷰 국내도서 저자 : 박상길 출판 : 책만 2020..

[Python] LeetCode 15. 3Sum

leetcode.com/problems/3sum/submissions/ 3Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 리스트에서 "합쳐서 0이 되는 세 숫자의 조합"을 리스트로 저장해 반환하는 문제. combinations로 모든 경우의 수를 조사할 경우 timeout이 발생한다. 투 포인터로 해결할 수 있는 문제. cf. 이 코드는 아래의 책을 참고했습니다. 파이썬 알고리즘 인터뷰 국내도서 저자 : 박상길 출판 : 책만 2020.07.15 상세보기

[Python] 프로그래머스. 풍선 터트리기 (Level 3)

programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 어떻게 접근해야 할지 모르겠어서, 다른 블로그의 풀이를 참고했다. velog.io/@pss407/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A468646-%ED%92%8D%EC%84%A0-%ED%84%B0%ED%8A%B8%EB%A6%AC%EA%B8%B0 [프로그래머스]#68646 풍선 터트리기 문제일렬로 나열된 n개의 풍선이 있습니다. 모든 풍선에는 서로 다른 숫자가 써져 있습니다. 당신은 다음 과정을 반복하면서 풍선들을 단 1개만 ..

[Python] 프로그래머스. 2020 카카오 인턴 - 보석 쇼핑 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 실제 테스트할 때 효율성을 끝까지 해결 못 했던 문제. 처음 접근할 때는 '이분탐색으로 window 사이즈 탐색' + '해당 window size가 조건을 충족하는지 확인'하는 방식으로 풀었는데, 다시 풀면서 접근해보니 리스트 슬라이싱을 쓰면 시간초과가 반드시 등장했다. 정답은 투 포인터를 활용한 탐색.