본문 바로가기

알고리즘90

Algorithm - 정다면체 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [정다면체] 두 개의 정 N면체와 정 M면체 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램을 작성하시오. 단, 정답이 여러개일 경우 오름차순으로 출력한다. *입력 설명 첫 번째 줄에는 자연수 N과 M이 주어진다. 단, N과 M은 4, 6, 8, 12, 20 중 하나이다. *출력 설명 첫 번째 줄에 답을 출력한다. 풀이(Python) 답안 import sys sys.stdin = open('AA/input_5.txt', 'rt') n, m = map(int, input().split()) cnt = [0]*(n+m+1) max.. 2021. 11. 2.
Algorithm - 대표값 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [대표값 구하기] N명 학생의 수학점수가 주어집니다. N명 학생들의 평균(소수 첫째자리에서 반올림)을 구하고, N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하시오. 단, 평균과 가장 가까운 점수가 여러 개일 경우 점수가 가장 높은 학생의 번호를 답으로 하고, 높은 점수를 가진 학생이 여러 명일 경우 학생번호가 가장 빠른 학생의 번호를 답으로 한다. *입력 설명 첫 번째 줄에는 자연수 N(5 ≤ N ≤ 100)이 주어진다. 두 번째 줄에는 각 학생의 수학점수인 N개의 자연수가 주어진다. 참고로, 학생의 번호는 1부터 시작해서 .. 2021. 11. 1.
Algorithm - 최소값 구하기 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [최소값 구하기] 주어진 N개의 숫자 중에서, 최소값을 출력하는 프로그램을 작성하시오. *입력 설명 첫 번째 줄에 N개의 자연수가 주어진다. (단, 1 ≤ N ≤ 1000) *출력 설명 N개의 자연수 중 최소값을 출력한다. 풀이(Python) 답안(1) import sys sys.stdin = open('AA/input_preknowledge.txt', 'rt') arr = list(map(int, input().split())) arrMin = float('inf') for i in range(len(arr)): if arr[i] < arrMin: arrMin .. 2021. 10. 29.
Algorithm - K번째 큰 수 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [K번째 큰 수] 현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있으며, 같은 숫자의 카드가 여러장 있을 수 있다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려고 한다. 3장을 뽑을 수 있는 모든 경우를 기록하고, 기록한 값 중 K번째로 큰 수를 출력하는 프로그램을 작성하시오. 만약 만들어진 수가 큰 수부터 25 25 23 23 22 20 19 ... 이고, K값이 3이라면 K번째 큰 값은 22이다. *입력 설명 첫 번째 줄에는 자연수 N(3 ≤ N ≤ 100)과 K(1 ≤ K ≤ 50)이 입력된다. 두 번째 줄에는 N개의 .. 2021. 10. 29.
Algorithm - K번째 수 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [K번째 수] N개의 숫자로 이루어진 숫자열이 주어지면 해당 숫자열중에서 s번째부터 e번째까지의 수를 오름차순으로 정렬했을 때, K번째로 나타나는 숫자를 출력하는 프로그램을 작성하시오. *입력 설명 첫 번째 줄에 테스트 케이스 T(1 ≤ T ≤ 10)가 주어진다. 각 케이스 마다 첫 번째 줄에는 자연수 N(5 ≤ N ≤ 500)과 s, e, k가 차례로 주어진다. 각 케이스 마다 두 번째 줄에는 N개의 숫자가 차례로 주어진다. *출력 설명 각 케이스 마다 K번째 수를 출력한다. 풀이(Python) 답안 import sys sys.stdin = open('AA/in.. 2021. 10. 25.
Algorithm - K번째 약수 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [K번째 약수] 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. *입력 설명 첫 번째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. 단, N은 1 ≤ N ≤ 10,000이고 K는 1 ≤ K ≤ N 이다. *출력 설명 첫 번째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만약, N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 -1을 출력한다. 풀이(Python) 답안 import sys sys.stdin=open('AA/input_1.txt', 'rt') n, k = map.. 2021. 10. 25.