본문 바로가기

분류 전체보기

[코딩테스트] 기본반A 21일 문제 이름: 사탕게임(https://www.acmicpc.net/problem/3085)문제 유형: 구현, 브루트포스 알고리즘난이도: S2언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import sysdef count_max_candies(board, N): max_candies = 0 # 가로, 세로로 연속된 사탕의 최대 개수 찾기 # 가로로 연속된 사탕 수 세기 for i in range(N): count = 1 for j in range(1, N): if board[i][j] == board[i][j-1]: count += 1 else: ..
[코딩테스트] 기본반A 20일차 문제 이름: 로봇(https://www.acmicpc.net/problem/13901)문제 유형: 구현, 시뮬레이션난이도: S1언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import sysR, C = map(int, sys.stdin.readline().rstrip().split())obsNum = int(sys.stdin.readline().rstrip())matrix = [[0]*C for _ in range(R)]for _ in range(obsNum): r, c = map(int, sys.stdin.readline().rstrip().split()) matrix[r][c] = 1sr, sc = map(int, sys.stdin.readline().r..
[코딩테스트] 기본반A 19일차 문제 이름: 유턴 싫어(https://www.acmicpc.net/problem/2823)문제 유형: 그래프 이론난이도: S2언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import sysfrom collections import deque# 방향 (상, 하, 좌, 우)directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]def is_dead_end(r, c, grid, R, C): """ r, c에서 4방향에 대해 모두 연결될 수 있는지 확인한다. 3방향 이상이 막히면 막다른 길이다. """ count = 0 for dr, dc in directions: nr, nc = r + dr, c +..
[코딩테스트] 기본반A 18일차 문제 이름: 십자카드 문제(https://www.acmicpc.net/problem/2659)문제 유형: 구현, 브루트포스 알고리즘, 정렬난이도: S3언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import sysdef solve(r): Sigyesu = list(map(int, str(r))) # print(Sigyesu) rotation = [0, 1, 2, 3] * 4 # print(rotation) for i in range(4): update_min = int(Sigyesu[rotation[i+1]]*1000 \ + Sigyesu[rotation[i+2]]*100 \ ..
[코딩테스트] 기본반A 17일차 문제 이름: 등수 매기기(https://acmicpc.net/problem/2012)문제 유형: 그리디 알고리즘, 정렬난이도: S3언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import sysdef solve(): # 학생 수 N N = int(sys.stdin.readline().rstrip()) # 예상 등수 입력 expected_ranks = [int(sys.stdin.readline().rstrip()) for _ in range(N)] # 예상 등수를 오름차순으로 정렬 expected_ranks.sort() # 불만도의 합을 계산 total_displeasure = 0 for i in range(N): ..
[코딩테스트] 기본반A 16일차 문제 이름: 트리(https://www.acmicpc.net/problem/4803)문제 유형: 자료 구조, 그래프 이론, 그래프 탐색, 트리, 깊이 우선 탐색, 분리 집합난이도: G4언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import syssys.setrecursionlimit(10000)def dfs(graph, visited, node): stack = [node] count_nodes = 0 count_edges = 0 while stack: v = stack.pop() if not visited[v]: visited[v] = True count_nodes += 1 ..
[코딩테스트] 기본반A 15일차 문제 이름: 최소비용 구하기(https://www.acmicpc.net/problem/1916)문제 유형: 그래프 이론, 최단 경로, 데이크스트라난이도: G5언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드import heapqimport sys# 입력을 빠르게 받기 위해 sys.stdin 사용input = sys.stdin.readINF = float('inf')def dijkstra(start, n, graph): dist = [INF] * (n + 1) dist[start] = 0 pq = [(0, start)] # (비용, 도시 번호) while pq: current_cost, current_city = heapq.heappop(..
[코딩테스트] 기본반A 14일차 문제 이름: 특정 거리의 도시 찾기(https://www.acmicpc.net/problem/18352)문제 유형: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 최단 경로, 데이크스트라난이도: S2언어: Python문제 탐색하기시간 복잡도코드 설계하기시도 회차 수정사항정답 코드from collections import dequeimport sys# 입력# n, m, k, s = map(int, input().split())n, m, k, s = list(map(int, sys.stdin.readline().split()))graph = {}for i in range(n+1): graph[i] = []for i in range(m): a, b = list(map(int, sys.stdin.re..