본문 바로가기

코딩테스트/Algorithm7

[Algorithm][Python] 곶감(모래시계) [문제] 곶감(모래시계) 현수는 곳감을 만들기 위해 감을 깍아 마당에 말리고 있습니다. 현수의 마당은 N*N 격자판으 로 이루어져 있으며, 현수는 각 격자단위로 말리는 감의 수를 정합니다. 그런데 해의 위치에 따라 특정위치의 감은 잘 마르지 않습니다. 그래서 현수는 격자의 행을 기준으로 왼쪽, 또는 오른쪽으로 회전시켜 위치를 변경해 모든 감이 잘 마르게 합니다. 만약 회전명령 정보가 2 0 3이면 2번째 행을 왼쪽으로 3만큼 아래 그림처럼 회전시키는 명령 입니다. 1행 10 13 10 12 15 10 13 10 12 15 2행 12 39 30 23 11 23 11 12 39 30 3행 11 25 50 53 15 => 11 25 50 53 15 4행 19 27 29 37 27 19 27 29 37 27 5.. 2021. 5. 20.
[Algorithm][Python] 자릿수의 합 [문제] 자릿수의 합 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요. 입력 설명 첫 줄에 자연수의 개수 N(3 0: sum += x % 10 x = x // 10 return sum n = int(input()) a = list(map(int ,input().split())) max = -2147000000 answer = 0 for x in a: total = digit_sum(x) if total > max: max = total answer = x print(answer) 2021. 5. 19.
[Algorithm][Python] 정다면체 [문제] K번째 큰 수 두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확 률이 높은 숫자를 출력하는 프로그램을 작성하세요. 정답이 여러 개일 경우 오름차순으로 출력합니다. 입력 설명 첫 번째 줄에는 자연수 N과 M이 주어집니다. N과 M은 4, 6, 8, 12, 20 중의 하나입니다. 출력 설명 첫 번째 줄에 답을 출력합니다. 입력예제 1 4 6 출력예제 1 5 6 7 문제 접근 N과 M을 입력받고, N+M의 합은 주사위가 나올 수 있는 최대합이므로 N+M의 합의 갯수만큼 0의 값을 가지는 배열을 만들어준다. N과 M을 이중 for문을 돌면서 두 주사위의 합의 인덱스에 +=1 을 해준다. dice 배열을 for문을 돌려서 if max값과 같으면 출력한다. 풀이.. 2021. 5. 13.
[Algorithm][Python] 대표값 [문제] K번째 큰 수 N명의 학생의 수학성적이 주어집니다. N명의 학생들의 평균(소수 첫째자리 반올림)을 구하고, N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하세 요. 답이 2개일 경우 성적이 높은 학생의 번호를 출력하세요. 만약 답이 되는 점수가 여러 개일 경우 번호가 빠른 학생의 번호를 답으로 한다 입력 설명 첫줄에 자연수 N(5 2021. 5. 13.
[Algorithm][Python] K번째 큰 수 [문제] K번째 큰 수 현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려 고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로 큰 수를 출력 하는 프로그램을 작성하세요. 만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값 은 22입니다. 입력 설명 첫 줄에 자연수 N(3 2021. 5. 13.
[Algorithm][Python] K번째 작은수 [문제] K번째 작은수 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. N개의 숫자로 이루어진 숫자열이 주어지면 해당 숫자열중에서 s번째부터 e번째 까지의 수 중 k번째로 작은 수를 출력하는 프로그램을 작성하세요. 입력 설명 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.첫 번째 줄에 테스트 케이스 T(1 2021. 5. 13.