문제 7582번: On the Bus Each scenario begins with a route number (up to 5 numbers or letters with no spaces) and Z, the size of the bus (maximum number of passengers, 10
python
문제 7572번: 간지(干支) 예로부터 동아시아에서는 십간(十干)과 십이지(十二支)를 사용하여 연도를 표시하였다. 십간은 "갑을병정무기경신임계"를 말하며 십이지는 "자축인묘진사오미신유술해"를 말한다. 십간과 십이 www.acmicpc.net 풀이 import sys input = sys.stdin.readline def convert_ganzi(year): ten_gan = [str(i) for i in range(10)] # 십간: 0부터 9까지의 정수 twelve_ji = "ABCDEFGHIJKL" # 십이지: "ABCDEFGHIJKL" # 2013년은 F9이므로, 1984년부터 시작하는 것으로 계산 year_offset = year - 1984 # 십이지와 십간 계산 ji = twelve_ji[ye..
문제 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net 풀이 - 틀린 풀이 먼저, 각 노드(사람)와 에지(친구 관계)를 나타내는 그래프를 구성합니다. 그런 다음, 각 노드의 연결 정도(친구 수)에 따라 우선순위 큐(최소 힙)를 이용하여 최소 얼리아답터의 수를 계산했습니다. import sys import heapq as hq from collections import defaultdict input = sys.stdin.readline N = int(input()) friends = [] # 친구 수를 담..
문제 6359번: 만취한 상범 한 줄에 한 개씩 각 테스트 케이스의 답, 즉 몇 명이 탈출할 수 있는지를 출력한다. www.acmicpc.net 풀이 문제의 핵심은 각 라운드가 끝난 후에 어떤 방이 열려있는지 파악하는 것입니다. 어떤 방이 열려있는지는 그 방 번호의 약수의 개수에 의해 결정됩니다. n개의 방 중에서 제곱수인 방의 개수를 구하면 탈출할 수 있는 학생들의 수를 알 수 있습니다. import sys input = sys.stdin.readline def solve(n): cnt = 0 for i in range(1, int(n ** 0.5) + 1): if i * i
visited를 사용하는 두 가지 방법, 즉 리스트를 사용하는 방법과 세트(set)를 사용하는 방법 모두 각 노드의 방문 여부를 추적하는 데에 목적이 있습니다. 이 두 방법은 성능과 사용 편의성에 있어 각각 장단점이 있습니다. - visited를 list으로 선언하는 방법 list는 인덱스를 사용하여 각 요소에 빠르게 접근할 수 있으므로, visited[node] = True 또는 if visited[node]:와 같이 특정 노드의 방문 여부를 체크하는데 상수 시간(O(1))이 걸립니다. list는 메모리를 연속적으로 할당하기 때문에 캐시 효율이 좋을 수 있습니다. 노드 번호가 1부터 시작하는 경우, 인덱스 0을 사용하지 않으므로 약간의 메모리가 낭비될 수 있습니다. - visited를 set으로 선언하..