본문 바로가기
반응형

Problem Solving/BOJ225

[BOJ][Python]14940 풀이 https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline def get_pos(): for i in range(n): for j in range(m): if board[i][j] == 2: visited[i][j] = 0 q.append((i, j, 0)) elif board[i][j] == .. 2023. 7. 22.
[BOJ][Python]18110 풀이 https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net import sys ssr = sys.stdin.readline n = int(ssr()) scores = [int(ssr()) for _ in range(n)] scores.sort() if n == 0: print(0) elif n < 4: print(round(sum(scores)/len(scores) + 1e-7)) else: cut = round(n*15/10.. 2023. 7. 20.
[BOJ][Python]1283 풀이 https://www.acmicpc.net/problem/1283 1283번: 단축키 지정 첫째 줄에 옵션의 개수 N(1 ≤ N ≤ 30)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄에 옵션을 나타내는 문자열이 입력되는데 하나의 옵션은 5개 이하의 단어로 표현되며, 각 단어 역시 10개 이하 www.acmicpc.net import sys ssr = sys.stdin.readline def query1(words): for i in range(len(words)): words[i] = list(words[i]) if words[i][0] not in hotkeys: hotkeys[words[i][0].lower()] = 0 hotkeys[words[i][0].upper()] = 0 words[i][.. 2023. 7. 20.
[BOJ][Python]1916 풀이 https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net import heapq import sys ssr = sys.stdin.readline INF = 100000000 def dijkstra(start, arrive): min_cost = [INF for _ in range(n+1)] h = [] heapq.heappush(h, (0, start)) # 거리, 도착 순서 min_cost[start] = 0 whil.. 2023. 7. 19.
[BOJ][Python]1366 풀이 https://www.acmicpc.net/problem/1366 1366번: 기타 코드 음악에서 음표는 다음과 같이 12개의 이름이 있다. 오름차순으로 A, A#, B, C, C#, D, D#, E, F, F#, G, G# 이다. 이 음은 이것보다 더 높아질 때, 낮아질 때, 모두 이 순서대로 다시 반복되기 때문에, G#보 www.acmicpc.net def f(string_idx, result): if len(result) == n: for i in visited: if i == 0: return else: if max(result) == 0 and min(result) == 0: ans.append(0) else: sorted_result = sorted(result) tmp = [] max_res.. 2023. 7. 19.
[BOJ][Python]1011 풀이 https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net import sys ssr = sys.stdin.readline t = int(ssr()) for _ in range(t): x, y = map(int, ssr().split()) dist = y-x rep = dist**(1/2) if rep > 2 round(2.5 + 0.000000001) >> 3 2023. 7. 17.
[BOJ][Python] 1138 풀이 https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net n = int(input()) line = list(map(int, input().split())) ans = [0 for _ in range(n)] for i in range(len(line)): # 현재 선택된 친구 cnt = 0 for j in range(len(line)): # 바꿔가면서 비교중인 자리 if ans[j] == 0 and cnt == line[i]: ans[j] = i.. 2023. 7. 16.
[BOJ][Python]1569 풀이 https://www.acmicpc.net/problem/1569 1569번: 정사각형으로 가리기 정사각형으로 가려지는 점이란, 어떤 점이 그 정사각형의 한 변 위에 놓여져 있을 때, 정사각형으로 가려진다고 한다. 점이 N개가 주어진다. N개의 점 모두를 가릴 수 있는 정사각형을 구하는 프 www.acmicpc.net import sys ssr = sys.stdin.readline def is_available_a(points, x, y, l): for i in points: if x 2023. 7. 15.
[BOJ][Python]1515 풀이 https://www.acmicpc.net/problem/1515 1515번: 수 이어 쓰기 세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다. 세준 www.acmicpc.net line = input() ans = 0 while len(line): ans += 1 check = str(ans) while len(check) > 0 and len(line) > 0: if check[0] == line[0]: line = line[1:] check = check[1:] print(ans) 구현 문제는 항상 표기 난이도보다 좀 어려운 것 같습니다. 아이디어는 떠오르는데 그걸.. 2023. 7. 14.
[BOJ][Python]13305 풀이 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net n = int(input()) l = list(map(int, input().split())) p = list(map(int, input().split())) min_p = p[0] ans = 0 for i in range(1, len(p)): ans += l[i-1] * min_p if p[i] < min_p: min_p = p[i] print(ans) 정말 제가 그리디를 잘 안푼.. 2023. 7. 13.
반응형