본문 바로가기

분류 전체보기

(123)
4. 대표값 # 대표값 def run(N, nums): avg = int(sum(nums) / N + 0.5) # 반올림 min_d, score, idx = 1e9, 0, 0 for i, s in enumerate(nums): d = abs(s - avg) if d score: score = s idx = i return (avg, idx) N = int(input()) nums = list(map(int, input().split())) avg, idx = run(N, nums) print(avg, idx+1)
3. K번째 큰 수 # K번째 큰 수 def run(N, K, nums): s = set() for i in range(N): for j in range(i+1, N): for k in range(j+1, N): s.add(nums[i] + nums[j] + nums[k]) a = sorted(list(s), reverse=True) return a[K-1] # K번째 큰 수 N, K = map(int, input().split()) nums = list(map(int, input().split())) print(run(N, K, nums))
2. K번째 수 # K번째 수 def run(S, E, K, nums): a = nums[S-1:E] a.sort() return a[K-1] # K번째 수 T = int(input()) for i in range(T): N, S, E, K = map(int, input().split()) nums = list(map(int, input().split())) ans = run(S, E, K, nums) print(f"#{i+1} {ans}")
1. K번째 약수 # K번째 약수 def run(N, K): a = [] # 약수 for i in range(1, N + 1): if N % i == 0: a.append(i) if len(a) >= K: return a[K-1] # K번째 약수 else: return -1 N, K = map(int, input().split()) print(run(N, K))
1-4. [구현] 자주 사용하는 라이브러리 0. 방향 벡터 # direction: 서, 남, 동, 북 dx = [0, 1, 0, -1] dy = [-1, 0, 1, 0] steps = [(0, -1), (1, 0), (0, 1), (-1, 0)] steps = {'W': (0, -1), 'S': (1, 0), 'E': (0, 1), 'N': (-1, 0)} 1. itertools: 조합, 순열, 중복순열 import itertools result = list(itertools.combinations([1, 2, 3], 2)) print(result) # [(1, 2), (1, 3), (2, 3)] result = list(itertools.permutations([1, 2, 3], 2)) print(result) # [(1, 2), (1, 3),..
1759번: 암호만들기 (백트래킹) www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net # 암호만들기 # https://www.acmicpc.net/problem/1759 (백트래킹) import re def recursive(chars, res, a="", idx=0): if len(a) == L: co = re.sub("[aeiou]", "", a) # 자음 vo = re.sub("[^aeiou]", "", a) # 모음 if len(co) >= 2 and len(vo) >= 1: res.appen..
1987번: 알파벳 (백트래킹) www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net # 알파벳 # https://www.acmicpc.net/problem/1987 (백트래킹) # 방문경로가 다르면 재방문 가능하므로 방문리스트가 아니라 SET을 이용한다. def dfs(x, y, step): global result # if not visited[x][y]: # visited[x][y] = 1 if (x, y, step) not in queue: queue.add((x, y, step)..
42627번: 디스크컨트롤러 (힙) programmers.co.kr/learn/courses/30/lessons/42627/solution_groups?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(jobs): answer = 0 time = 0 # 현재까지 진행된 작업 시간 length = len(jobs) jobs = sorted(jobs, key=lambda x: x[1]) # 소요시간 우선 정렬 while len(jobs) != 0: for i in range(len(jobs)): if jobs[i][0]