본문 바로가기
반응형

전체 글288

[BOJ][Python]20040 풀이 https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net import sys ssr = sys.stdin.readline def find(node): if uf[node] == node: return node else: uf[node] = find(uf[node]) return uf[node] def union(node1, node2): root1 = find(node1) root2 = find(node2) if root1 != root2: if .. 2023. 7. 29.
[BOJ][Python]1976 풀이 https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net import sys ssr = sys.stdin.readline def find(node): if uf[node] == node: return node else: uf[node] = find(uf[node]) return uf[node] def union(node1, node2): root1, root2 = find(node1), find(node2) if root1 != root2: if ran.. 2023. 7. 28.
[BOJ][Python]4195 풀이 https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net from collections import defaultdict import sys ssr = sys.stdin.readline def find(name): if uf[name] == name: return name else: uf[name] = find(uf[name]) return uf[name] def union(name1, name2): root1 = find(name1) roo.. 2023. 7. 27.
[BOJ][Python]1717 풀이 https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net import sys ssr = sys.stdin.readline sys.setrecursionlimit(1000000) def union(node1, node2): root1 = find(node1) root2 = find(node2) if root1 != root2: if rank[root1] < rank[root2]: uf[root1] = root2 eli.. 2023. 7. 26.
[BOJ][Python]1043 풀이 https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline def check_truth(): while q: p = q.popleft() for party in parties: if p in party[1:]: for i in party[1:]: if visited[i] == False: q.append(i) visited[i] = True n, m.. 2023. 7. 26.
[BOJ][Python]21736 풀이 https://www.acmicpc.net/problem/21736 21736번: 헌내기는 친구가 필요해 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline def check_pos(): p_cnt = 0 for i in range(n): for j in range(m): if campus[i][j] == 'I': q.append((i, j)) campus[i][j] = 'X' elif campus[i][j] == 'P':.. 2023. 7. 24.
[BOJ][Python]20529 풀이 https://www.acmicpc.net/problem/20529 20529번: 가장 가까운 세 사람의 심리적 거리 각 테스트 케이스에 대한 답을 정수 형태로 한 줄에 하나씩 출력한다. www.acmicpc.net import sys ssr = sys.stdin.readline def cal_dist(stu_stack): result = 0 for i in range(2, -1, -1): for j in range(4): tmp = 0 if stu_stack[i][j] != stu_stack[i-1][j]: tmp += 1 result += tmp return result def f(start, stu_stack): if len(stu_stack) == 3: distance = cal_dist(stu_.. 2023. 7. 23.
[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.
반응형