본문 바로가기

ALGORITHM78

[BOJ/PYTHON] 11399. ATM # silver3-11399. ATM import sys put = sys.stdin.readline # 각 사람의 인출 시간 = 앞 사람의 인출 시간을 대기하는 시간 + 본인의 인출 시간 # 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값? num = int(put()) arr = list(map(int, put().split())) result=0 arr.sort() # 앞사람이 계속 더해져서 소요 시간 짧은 사람이 앞에 와야 전체 인출 시간이 짧아짐 for i in range(num): result += arr[i]*(num-i) # arr[i]의 시간동안 i 뒤의 (num-i)명이 기다림 print(result) 2022. 3. 27.
[BOJ/PYTHON] 13305. 주유소 # silver4-13305. 주유소 import sys put = sys.stdin.readline # 각 도시에 있는 주유소의 기름 가격과, 각 도시를 연결하는 도로의 길이를 입력으로 받아 제일 왼쪽 도시에서 제일 오른쪽 도시로 이동하는 최소의 비용을 계산 n = int(put()) #도시 개수 length = list(map(int, put().split())) #도로의 길이 price = list(map(int, put().split())) #도시의 리터당 가격 # (i-1)번째에서 i번째 도시로 가는 거리에 소모되는 기름은 # 1~(i-1)번째 주유소 중 가장 가격이 싼 도시의 주유소 고르면 됨 sum = 0 minPrice = price[0] for i in range(n-1): if minP.. 2022. 3. 27.
[BOJ/PYTHON] 23559. 밥 # gold5-23559. 밥 import sys put = sys.stdin.readline # 5,000원짜리 메뉴의 맛 A와 1,000원짜리 메뉴의 맛 B 중 예산 안에 맛의 합을 극대화 n, x = map(int, put().split()) taste = [list(map(int, put().split())) for _ in range(n)] # 예산 제약 존재, 1000원이 더 맛있는 경우도 존재.. # 맛 수치가 높은 순으로 정렬해 예산 안에서 최적 선택하기 # 맛 수치는 그날의 비교우위. 50 30인 날보다 50 20인 날 5천원짜리 먹는 게 이득 # 일단 천원짜리 다 고른다고 해놓고 예산이 허용되는 한 만족도 높은 순서대로 5천원짜리 껴넣기 # 5천에서 천원짜리 만족도를 뺀 거를 내림차순 .. 2022. 3. 27.
[BOJ/PYTHON] 1931. 회의실 배정 # silver2-1931. 회의실 배정 import sys put = sys.stdin.readline # 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수 n = int(put()) meet = [list(map(int, put().split())) for _ in range(n)] #x[1](끝나는 시간) 기준으로 먼저 정렬 후 x[0](시작 시간) 기준으로 정렬 meet.sort(key=lambda x: (x[1], x[0])) cnt = 1 #첫번째 회의 배정해서 1부터 시작 end = meet[0][1] #첫번째 회의의 끝나는 시간 for i in range(1, n): #첫번째 회의는 확정이라 그 다음부터 봄 if end 2022. 3. 27.
[ALGORITHM] 10. 그래프 이론 이것이 취업을 위한 코딩테스트다 with python 문제 풀이 10-7. 실전 문제 '팀 결성' # C10. 그래프 이론 - 실전 문제 '팀 결성' import sys put = sys.stdin.readline n, m = map(int, put().split()) #학생 총 n번까지, m은 입력 개수 parent = [0] * (n + 1) # 부모 테이블 초기화하기 # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x): # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] # 두 원소가 속한 집합을 합치기 def u.. 2022. 3. 8.
[ALGORITHM] 9. 최단 경로 이것이 취업을 위한 코딩테스트다 with python 문제 풀이 9-4. 실전문제 '미래 도시' # C9. 최단 경로 - 실전문제 '미래 도시' import sys put = sys.stdin.readline INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정 # 회사간 1만큼 시간으로 연결된 도로 통해 이동 가능 # 방문판매원이 1번 회사에서 k번 회사를 거쳐 x번 회사로 가는 최소 이동 시간 # 노드의 개수 및 간선의 개수를 입력받기 n, m = map(int, put().split()) # 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화 graph = [[INF] * (n + 1) for _ in range(n + 1)] # 자기 자신에서 자기 자신으로 가는 비용은.. 2022. 3. 7.