본문 바로가기

코딩테스트 준비 with Python/내가 보려고 정리하는 문풀

(8)
뒤집은 소수 N개의 자연수가 입력되면 각 자연수를 뒤집은 후, 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램 작성!ex) 32가 입력된 경우, 이를 뒤집으면 23이고 23은 소수이므로 출력*뒤집는 함수 reverse(x)와 소수인지를 판별하는 함수 isPrime(x)을 반드시 작성 입력예시)532 55 62 3700 250 출력예시)23 73내가 처음에 쓴 코드def reverse(x): x = str(x) return int(x[::-1])def isPrime(x): for i in range(2,x): if x%i == 0: return False return TrueN = int(input())inputLst = list(map(int, input()...
소수 (에라토스테네스의 체) 자연수 N이 입력되면 1부터 N까지의 숫자들 중 소수의 개수를 출력하는 프로그램을 작성!ex) 20입력 시 1부터 20까지의 숫자들 중 소수는 2,3,5,7,11,13,17,19로 총 8개. 입력예시)20 출력예시)8내가 처음 쓴 코드def isPrime(x): for i in range(2,x): if x%i == 0: return False return TrueN = int(input())cnt = 0for i in range(2, N+1): if isPrime(i): cnt += 1print(cnt)모범답안n = int(input())checkLst = [0]*(n+1)cnt = 0for i in range(2,n+1): if che..
자릿수의 합 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램 작성.각 자연수의 자릿수의 합을 구하는 함수를 digit_sum(x)로 정의하여 프로그래밍! 입력예시)3125 15232 97 *첫번째 줄은 N, 그 밑은 N개의 자연수들 출력예시)97내가 쓴 코드def digit_sum(x): sum = 0 maxNum = len(x) - 1 x = int(x) for i in range(maxNum, -1, -1): sum += x//10**i x -= (x//10**i)*(10**i) return sumN = int(input())numLst = input().split()sumLst = []for x in nu..
정다면체 두 개의 정 N면체와 정 M면체의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램 작성숫자가 여러개일 경우 오름차순으로 출력 입력예시)4 6출력예시)5 6 7내가 처음에 쓴 코드N, M = map(int, input().split())sumLst = []for i in range(1,N+1): for j in range(1,M+1): sumLst.append(i + j)cntLst = []for x in sumLst: cntLst.append(sumLst.count(x))maxCnt = max(cntLst)result = set()for x in sumLst: if sumLst.count(x) == maxCnt: result...
대표값 N개의 점수가 주어진다. N개의 점수의 평균을 구하고 N개의 숫자 중 평균에 가장 가까운 숫자는 몇번째 인지(*인덱스+1) 구하는 프로그램 작성.만약에 가장 가까운 값이 여러개인 경우, 더 높은 점수를 선택해야함만약에 같은 점수가 여러개 인경우, 번호가 빠른 점수를 선택해야함*평균은 소수첫째자리에서 반올림, 즉 정수로 만들어야함 입력예시)1045 73 66 87 92 67 75 79 75 80 출력예시)74 7내가 쓴 코드N = int(input())lst = list(map(int, input().split()))avg = round(sum(lst)/N)closestDiff = abs(avg - lst[0])closest = lst[0]for i in range(1, len(lst)): if ab..
K번째 큰 수 1~100사이의 자연수가 적힌 N장의 카드 (같은 숫자 있을 수 있음) 중에서 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록. 기록한 값들 중 K번째로 큰 수를 출력하는 프로그램 (기록한 값들 중에서 같은 값들은 하나로 취급됨) 입력예시)10 313 15 34 23 45 65 33 11 26 42 *첫번째 줄은 N과 K두번째 줄은 N개의 숫자가 적힌 카드  출력예시)143내가 쓴 코드N, K = map(int,input().split())lst = list(map(int,input().split()))sumPreparation = []sumResults = []for i in range(N): for j in range(i+1,N): for k in range(j+1, N): ..
K번째 수 첫번째 줄에 테스트케이스 갯수 T가 주어지고, 각 케이스별로 N개의 숫자로 이루어진 공백구분 숫자열이 주어지면해당 숫자열중에서 s번째부터 e번째 까지의 수를 오름차순 정렬하여K번째로 나타나는 숫자를 출력하는 프로그램 작성 입력예시)26 2 5 35 2 7 3 8 915 3 10 34 15 8 16 6 6 17 3 10 11 18 7 14 7 15 *첫번째 줄은 테스트케이스 갯수 T두번째 줄은 순서대로 N, s, e , K세번째 줄은 N개의 숫자로 이루어진 숫자열 출력예시)#1 7#2 6내가 쓴 코드#테스트케이스 갯수T = int(input())#테스트케이스 수 만큼 반복for i in range(1,T+1): N, s, e, k = map(int, input().split()) lst = li..
K번째 약수 두개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램 작성*약수 개수가 K보다 작아서 K번째 약수가 존재하지 않을 경우 -1 출력 입력예시) 6 3출력예시)3내가 쓴 코드n, k = map(int,input().split())#약수 넣을 리스트lst = []#리스트에 약수들 넣음for i in range(1,n+1): if n%i == 0: lst.append(i)#리스트 오름차순 정렬lst.sort()if len(lst)  모범답안n, k = map(int, input().split())cnt = 0for i in range(1,n+1): n%i == 0: cnt+=1 if cnt == k: print(i) ..