본문 바로가기

알고리즘 (Python)/이것이 코딩 테스트다 with 파이썬 (실습)

(41)
[정렬 알고리즘] 성적이 낮은 순서로 학생 출력하기 - 파이썬(python) 성적이 낮은 순서로 학생 출력하기 난이도 : 下 풀이 시간 : 20분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) array = [] for i in range(n): input_data = input().split() array.append((input_data[0], int(input_data[1]))) array = sorted(array, key = lambda x:x[1]) for x in array: print(x[0], end = ' ') 예시 # N 입력 받기 n = int(input()) # N명의 학생 정보를 입력 받아 리스트에 저장 array = [] for i in range(n): input_data = input().split() # 이름은..
[정렬 알고리즘] 위에서 아래로 - 파이썬(python) 위에서 아래로 난이도 : 下 풀이 시간 : 15분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) array = [] for i in range(n): array.append(int(input())) array.sort(reverse=True) for i in range(n): print(array[i], end=' ') 예시 # N 입력 받기 n = int(input()) # N개의 정수를 입력 받아 리스트에 저장 array = [] for i in range(n): array.append(int(input())) # 파이썬 정렬 라이브러리를 이용하여 내림차순 정렬 수행 array = sorted(array, reverse=True) # 정렬이 수행된 결과를 출력 f..
[DFS/BFS 알고리즘] 미로 탈출 - 파이썬(python) 미로 탈출 난이도 : 中下 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 from collections import deque n, m = map(int, input().split()) maze = [] for i in range(n): maze.append(list(map(int, input()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y): queue = deque() queue.append((x, y)) while queue: x, y = queue.popleft() for i in range(4): nx, ny = x + dx[i], y + dy[i] if nx = n or ny ..
[DFS/BFS 알고리즘] 음료수 얼려 먹기 - 파이썬(python) 음료수 얼려 먹기 난이도 : 中下 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, m = map(int, input().split()) ice = [] for i in range(n): ice.append(list(map(int, input()))) def dfs(x, y): if x >= n or y >= m or x
[구현 알고리즘] 게임 개발 - 파이썬(python) 게임 개발 난이도 : 中 풀이 시간 : 40분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, m = map(int, input().split()) x, y, direction = map(int, input().split()) array = [] for i in range(n): array.append(list(map(int, input().split()))) darray = [[0] * m for _ in range(n)] dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] darray[x][y] = 1 count = 1 turned_count = 0 while True: direction = direction - 1 if direction == -1: direction = ..
[구현 알고리즘] 왕실의 나이트 - 파이썬(python) 왕실의 나이트 난이도 : 下 풀이 시간 : 20분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 location = input() count = 0 x = ord(location[0]) - 96 y = int(location[1]) steps = [ (-2, -1), (-2, 1), (-1, -2), (-1, 2), (1, -2), (1, 2), (2, -1), (2, 1) ] for step in steps: nx = x + step[0] ny = y + step[1] if 1
[그리디 알고리즘] 1이 될 때까지 - 파이썬(python) 1이 될 때까지 난이도 : 下 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, k = map(int, input().split()) count = 0 while (n > 1): if (n % k == 0): n = n / k count = count + 1 else: n = n - 1 count = count + 1 print(count) 예시 # N, K을 공백을 기준으로 구분하여 입력 받기 n, k = map(int, input().split()) result = 0 // N이 K 이상이라면 K로 계속 나누기 while n >= k: # N이 K로 나누어 떨어지지 않는다면 N에서 1씩 빼기 while n % k != 0: n -= 1 result += 1 # K로 나누기 n //= k re..
[그리디 알고리즘] 숫자 카드 게임 - 파이썬(python) 숫자 카드 게임 난이도 : 下 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, m = map(int, input().split()) result = [] for i in range(n): array = list(map(int, input().split())) result.append(min(array)) print(max(result)) 예시 # N, M을 공백을 기준으로 구분하여 입력 받기 n, m = map(int, input().split()) result = 0 # 한 줄씩 입력 받아 확인하기 for i in range(n): data = list(map(int, input().split())) # 현재 줄에서 '가장 작은 수' 찾기 min_value = min(data) # '가장 작..
[그리디 알고리즘] 큰 수의 법칙 - 파이썬(python) 큰 수의 법칙 (11399번) 난이도 : 下 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n, m, k = map(int, input().split()) array = list(map(int, input().split())) count = 0 array.sort(reverse=True) first = array[0] second = array[1] while True: if (m == 0): break else: for i in range(k): count = count + first if (m == 0): break m = m - 1 count = count + second m = m - 1 print(count) 예시 # N, M, K를 공백을 기준으로 구분하여 입력 받..
[그리디 알고리즘] 모험가 길드 - 파이썬(python) 모험가 길드 난이도 : 下 풀이 시간 : 30분 시간 제한 : 1초 메모리 제한 : 128 MB 해답 n = int(input()) gongpo = list(map(int, input().split())) gongpo.sort() group, count = 0, 0 for i in gongpo: count = count + 1 if i = i: # 현재 그룹에 포함된 모험가의 수가 현재의 공포도 이상이라면, 그룹 결성 result += 1 # 총 그룹의 수 증가시키기 count = 0 # 현재 그룹에 포함된 모험가의 수 초기화 print(result) # 총 그룹의 수 출력 해설 입력 n과 공포도 리스트 gongpo를 입력받습니다. 그리고 for 반복문으로 gongpo 리스트의 원소들을 하나하나 선택하고..