반응형

슬기로운 개발자생활/알고리즘노트 14

[구현] 자물쇠와 열쇠

1. 문제 풀어보기 (프로그래머스) Key로 Lock을 풀수 있는 방법이 있는가? 가능한 방법 : 회전, 이동 0은 들어간부분, 1은 튀어나온 부분 2. 입력 # SET - 1 key= [[0, 0, 0], [1, 0, 0], [0, 1, 1]] lock= [[1, 1, 1], [1, 1, 0], [1, 0, 1]] 3. 출력 # SET - 1 result = True 4. 풀이 회전함수를 구현해야한다. 여기서 중요한 건, 회전한 키의 type이 Lock에서 가져온 홈 파인부분과 일치하지 않으면, False를 반환하게 된다. 이 점을 유의해서 회전함수를 구현하는 것이 필요 회전함수를 구현했으면, 이후에 어떻게 저 홈에 키를 끼워맞출 것인지, 생각해야 하는데 본인의 경우에는 Lock에서 홈이 패인 부분만 ..

[그리디] 무지의 먹방 라이브

1. 문제 무지의 카카오 TV 방송 ! 1. 1번 음식부터 순서대로 먹기 시작함 2. 마지막 번호의 음식을 먹고나면 다시 1번 음식을 먹음 3. 1초에 한 음식만 먹고, 다음 음식은 남아있는 음식 중 가장 가까운 번호의 음식 4. 다음 번호의 음식이 오는데 걸리는 시간은 없음 K초가 지났다. 몇 번 음식을 먹어야 하는가? 2. 입력 # SET - 1 food_times=[3, 1, 2] K = 5 # SET - 2 food_times = [4, 2, 3, 6, 7, 1, 5, 8] K = 27 # SET - 3 food_times = [4, 2, 3, 6, 7, 1, 5, 8] K = 16 3. 출력 # SET - 1 result = 1 # SET - 2 result = 5 # SET - 3 result..

[그리디] 만들 수 없는 금액

1. 문제 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 2. 입력 5 3 2 1 1 9 3. 출력 8 그리디 문제, 동전들을 오름차순으로 정렬하고 목표 금액을 만들 수 있는지 여부를 판단하며 값을 증가시킨다. 현재 만들 수 있는 값을 target이라 하면, 현재 target보다 주어진 coin이 크면 해당 금액은 만들 수 없게 된다. 1 1 2 3 9가 주어졌을 때, 초기 target = 1 부터 시작한다고 했을 때, 1 ≥ 1 이므로 target += 1 → target=2 두 번째 코인 2 ≥ 1 이므로 target += 1 → target=3 세 번째 코인 3 ≥ 2 이므로 target += 2 → target=5 네 번째 코인 5 ≥ 3 이므로 ..

알고리즘 노트 - Python 라이브러리

# 입력 input() import sys sys.stdin.readline().rstrip() # 출력 print(f'{value}') # 내장 함수 sum([list]) max([list]) min([list]) eval("(3 + 5) * 7") sorted(array, reverse=False, key=lambda i:i[1]) # 반복 from itertools import permutations, combinations, product # 클래스객체 반환 permutations(array, 3) # 순열 (A B) (B A) combinations(array, 2) # 조합 (A B) product(array, repeat=2) # 중복 허용 순열 # 자료형 heap import heapq h..

반응형