목록알고리즘 (5)
준호씨의 블로그
구글 코드잼 2020 예선전이라고 할 수 있는 Qualification Round 가 19일 뒤에 열립니다. 이미 신청 페이지는 열렸으니 알고리즘 문제풀이에 관심이 있으신 분들은 참가해보시길 권장합니다. 참가비는 없습니다. 누구나 참가할 수 있습니다. 구글 코드잼이란? 구글코드잼은 구글에서 주최하는 세계적인 코딩 대회입니다. 2003년에 시작해서 벌써 20년이 다 되어가는 오랜 기간 운영되고 있는 대회입니다. 해가 갈수록 참가자들이 점점 많아져서 가장 최근 대회였던 2019년에는 59,719명이나 참가했습니다. 대회 방식은 다른 알고리즘 문제풀이 대회들과 비슷합니다. 해결할 문제들이 주어지고 주어진 시간 내에 풀어서 제출하면 됩니다. 문제는 라운드마다 서너 개의 문제가 출제됩니다. 라운드는 5개의 라운드..
leetcode https://leetcode.com/ programmers https://programmers.co.kr/learn/challenges 백준 https://www.acmicpc.net/ hacker rank https://www.hackerrank.com/ codewars https://www.codewars.com/
https://gist.github.com/junho85/0d8c4beb0441bb0337914ca6e69dd915 과정 처음에는 fixed size list 를 사용할 방법을 찾아 보다가 deque 라는 녀석을 알게 되었다. (https://stackoverflow.com/a/16430458/964890) 새로운 값이 들어가면 자연스럽게 기존에 들어갔던 값이 제거 되니 딱 적절해 보였다. 처음에는 이렇게 짰는데 첫번째 테스트를 무사히 통과 했다. def solution(cacheSize, cities): answer = 0 q = deque(maxlen=cacheSize) for item in cities: if item in q: answer += 1 else: answer += 5 q.append(..
알고리즘 문제 풀기에서 단골로 나오는 것중 하나가 순열입니. 리스트가 있을 때 서로 겹치지 않게 모든 경우로 표현하는 것입니다. 예들 들어 1과 2가 있으면 다음과 같은 조합을 만들 수 있습니다. 1 2 2 1 만약 1, 2, 3이 있다면 다음과 같은 조합을 만들 수 있겠죠? 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 순열은 factorial 로 경우가 수의 늘어납니다. 1! = 1 2! = 1 x 2 = 2 3! = 1 x 2 x 3 = 6 4! = 1 x 2 x 3 x 4 = 24 순열을 직접 구현 할 수도 있겠지만, 빠르게 해답을 찾으려면 itertools 를 사용할 수 있습니다. (python 만세) import itertools for perm in itertools.per..