반응형

전체 글 175

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 럭키 스트레이트

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 럭키 스트레이트 url: https://www.acmicpc.net/problem/18406 내 풀이 import sys input = sys.stdin.readline n = input().rstrip('\n') li = list(n) mid = (len(n)-1)//2 left_side = li[:mid+1] right_side = li[mid+1:] left_sum = 0 right_sum = 0 for i in range(mid+1): left_sum += int(left_side[i]) right_sum += int(right_side[i]) if left_sum == right_sum: print("LUCKY") else: p..

[Python] bisect (이진 탐색)

[Python] bisect (이진 탐색) bisect 라이브러리는 '정렬된 배열'에서 특정한 원소를 찾아야 할 때 매우 효과적으로 사용된다. bisect의 두 가지 메서드 bisect_left(a, x): 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드 bisect_right(a, x): 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메서드 예시 예를 들어 정렬된 리스트 a = [1, 2, 4, 4, 8]이 있을 때, 새롭게 데이터 4를 삽입하려 한다고 가정하자. 이때 bisect_left(a, 4)와 bisect_right(a, 4)는 각각 인덱스 값으로 2와 4를 반환한다. 소스코드 예시 from bisec..

[Python] heapq (최소힙, 최대힙)

[Python] heapq (최소힙 & 우선순위 큐) 파이썬의 힙은 최소 힙으로 구성되어 있고 단순히 원소를 힙에 전부 넣었다가 빼는 것만으로도 시간 복잡도 O(NlogN)에 오름차순 정렬이 완료된다. heapq 내부 메서드 heapq.heappush(): 원소 삽입 heapq.heappop() : 원소 꺼내기 heapq 예시 # 힙 정렬을 heapq로 구현하는 예제 import heapq def heapsort(iterable): h = [] result = [] # 모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappush(h, value) # 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기 for i in range(len(h)): result.append(h..

[Python] permutations & combinations (순열과 조합)

[Python] permutations & combinations (순열과 조합) itertools: 파이썬에서 반복되는 데이터를 처리하는 기능을 포함한 라이브러리 코테에서 유용한 클래스 2가지 permutations(순열) combinations(조합) permutations 예시 >>> from itertools import permutations >>> data = ['a', 'b', 'c'] >>> result = list(permutations(data, 3)) >>> print(result) [('a', 'b', 'c'), ('a', 'c', 'b'), ('b..

[알고리즘] 2019 KAKAO BLIND RECRUITMENT - 무지의 먹방 라이브

2019 KAKAO BLIND RECRUITMENT - 무지의 먹방 라이브 무지의 먹방 라이브 * 효율성 테스트에 부분 점수가 있는 문제입니다.평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다. 각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 만들 수 없는 금액

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 만들 수 없는 금액 내 풀이 import sys from itertools import combinations input = sys.stdin.readline n = input() coins = list(map(int, input().split())) coins.sort() result = 0 arr = [0] * (sum(coins)+1) for i in range(1, len(coins)+1): for combi in combinations(coins, i): arr[sum(combi)] += 1 for i in range(1, len(arr)): if arr[i] == 0: result = i break print(result) 내가 작성한 코드..

반응형