본문 바로가기

백앤드 개발/코딩테스트

(14)
[파이썬 문제 풀이] 소수 1. 문제 # 자연수 입력시 1~n 까지의 소수 출력하라 2. 풀이 import sys # sys.stdin=open("input.txt", "r") n = int(input()) ans = 0 for i in range(2, n+1): is_s = False # 소수인 경우 False for k in range(2, int(i**(1/2))+1): if i%k == 0: is_s = True # 2~ 제곱근값 중에 나머지가 0인값이 있다면 True 처리 break if is_s == False: ans+=1 print(ans) 참조: https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%9..
[파이썬 문제풀이] 자릿수의 합 1. 문제 # 입력된 자연수의 자릿수 합을 구하라 # 합이 최대인 자연수를 출력하라 2. 풀이 import sys # sys.stdin=open("input.txt", "r") # 1. 입력한 자연수의 자릿수를 반환하는 함수 구현 def digit_sum(x): hap = 0 while True: hap += x % 10 x = int(x/10) if x == 0: break return hap n = input() ls = list(map(int,input().split())) hap_ls=[] # 2. 자릿수가 가장 큰 요소의 인덱스 구하고 출력 for i in ls: hap_ls.append(digit_sum(i)) indx = hap_ls.index(max(hap_ls)) print(ls[indx..
[파이썬 문제풀이] 정다면체 1. 문제 # 두 개의 정N면체와 정M면체의 주사위를 던져 나올 수 있는 눈의 합 중 # 가장 확률 높은 숫자를 출력 # 정답이 여러개일 경우 오름차순 출력 2. 풀이 import sys # sys.stdin=open("input.txt", "r") n, m = map(int,input().split()) # N, M 이 주어짐 # 나올 수 있는 합을 전부 나열 hap_ls = [0] * (n+m+1) # 합 리스트 선언 # [0,1,2,3,,,n+m] for i in range(1,n+1): for j in range(1, m+1): hap_ls[i+j]+=1 max_num = max(hap_ls) # 최대값 선언 # hap_ls 에서 눈의 합에 해당하는 값 출력 for k in range(0, n+m..
[파이썬 문제 풀이] 대표값 1. 문제 # N명의 학생 점수가 주어짐 # 학생의 평균 (소수 첫째자리 반올림) 을 구하고 # N명의 학생 중 평균에 가장 가까운 학생은 몇번째 학생인지 출력 # 평균과 가장 가까운 점수가 여러개일 경우 높은 학생의 번호 출력 # 평균과 가까운 점수가 여러개 인 경우 점수가 높은 학생을 출력 # 높은 점수를 가진 학생이 여러 명일 경우 학생 번호 빠른 학생 점수를을 출력 2. 풀이 # 방법1 import sys # sys.stdin=open("input.txt", "r") n = int(input()) # 첫줄엔 학생 수 n (5~100) 이 주어짐 ls = list(map(int, input().split())) # 두번째 줄엔 각 학생의 수학점수가 주어짐 avg = round(sum(ls)/len(..
[파이썬 문제 풀이] k번째 큰 수 1. 문제 1~100 사이 자연수 적힌 카드 n장을 가짐, 중복이 있을 수 있음 이 중 3장을 뽑아 모든 경우의 수 기록 기록한 값 중 k번째로 큰 수를 출력하라 첫 줄에 자연수 n, k가 입력 그 다음 줄에 카드값이 입력 2. 풀이 import sys sys.stdin=open("input.txt", "r") n, k = map(int, input().split()) # 첫번째 줄 n, k 입력 a = list(map(int, input().split())) # 두번째 줄 리스트 입력 res = set() # 중첩되는 요소를 갖지 않는 set 선언 for i in range(n): for j in range(i+1, n): for m in range(j+1, n): res.add(a[i]+a[j]+a[..
[파이썬 문제 풀이] K번째 약수 1. 문제 n 은 1~10000, k는 1~n 사이 수 n의 약수들 중 k번째로 작은 수 출력 만일 n의 약수가 k 개보다 적을 경우 -1을 출력 2. 풀이 import sys # sys.stdin=open("input.txt", "r") n, k = map(int, input().split()) cnt = 0 for i in range(1, n+1): if n%i == 0: cnt += 1 if cnt == k: print(i) break else: print(-1) 참조: https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9..