skinOptions.hljs
Programmers / 소수찾기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 소수 찾기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12921 나의 풀이 def solution(n): ch = [0] * (n+1) cnt = 0 for i in range(2,n+1): if ch[i] == 0: cnt += 1 for j in range(i,n+1,i): ch[j] = 1 return cnt 다른 풀이 def solution(n): num=set(range(2,n+1)) for i in range(2,n+1): if i in num: num-=set(range(2*i,n+1,i)) return len(num) ※ 알아야 할 것 - set함수를 이용해서도 풀 수 있다
Programmers / 약수의 개수와 덧셈 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 약수의 개수와 덧셈 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77884 나의 풀이 #약수의 개수를 세는 함수 def count(x): cnt = 0 for i in range(1,x//2+1): if x % i == 0: cnt += 1 return cnt #약수가 짝수인지 홀수인지 정리하고 출력하는 함 def solution(left,right): arr_cnt = [] res = [] for i in range(left,right+1): arr_cnt.append(count(i)) res.append(i) for i in range(len(arr_cnt)): if arr_cnt[i] %..
문제 / 점수계산 / Python
·
coding test - python/기본기 문제
문제 제목: 점수계산 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기 로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다. 틀린 문제는 0점으로 계 산한다. 예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경 우에는 0으로 표시하였을 때, 점수 계산은 아래 표와 같이 계산되어, 총 점수는 1+1..
문제 / 주사위 게임 / Python
·
coding test - python/기본기 문제
문제 제목: 주사위 게임 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게 임이 있다. 규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된 다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이..
문제 / 뒤집은 소수 / Python
·
coding test - python/기본기 문제
문제 제목: 뒤집은 소수 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력 한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 뒤집는 함수인 def reverse(x) 와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하 여 프로그래밍 한다. ▣ 입력설명 첫 줄에 자연수의 개수 N(3 0: t = x % 10 x = x//10 res = res*10 + t return res 그래서 자릿수합을 구할 때 사용했던 방식처럼 while문을 이용하여 수를 뒤집어주었다. 그 다음 소수 출력에서도 오류가 나왔었는데.....
문제 / 자릿수의 합 / Python
·
coding test - python/기본기 문제
문제 제목: 자릿수의 합 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요. ▣ 입력설명 첫 줄에 자연수의 개수 N(3max: tot = max #자릿수끼리의 합이 최대인 수를 저장 res = x #최대인 수의 원래 값을 저장 print(res) while문을 이용하여 10으로 나눈 나머지 값을 더하고, x에는 10으로 나눈 몫을 반환하면서 자릿수끼리의 합을 구하였다. 이 부분은 다른 풀이에서와 마찬가지로 for문을 이용하여 함수부분을 다르게 바꿀 수 있다. def digit_sum(x): #자릿수끼리 더하는 함수 sum = 0 fo..
문제 / 소수 개수 출력하기 (에라토스테네스 체) / Python
·
coding test - python/기본기 문제
문제 제목: 소수 개수 출력하기 (에라토스테네스 체) 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다. 제한시간은 1초입니다. ▣ 입력설명 첫 줄에 자연수의 개수 N(2
문제 / 정다면체 / Python
·
coding test - python/기본기 문제
문제 제목: 정다면체 두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확 률이 높은 숫자를 출력하는 프로그램을 작성하세요. 정답이 여러 개일 경우 오름차순으로 출력합니다. ▣ 입력설명 첫 번째 줄에는 자연수 N과 M이 주어집니다. N과 M은 4, 6, 8, 12, 20 중의 하나입니다. ▣ 출력설명 첫 번째 줄에 답을 출력합니다. ▣ 입력예제 4 6 ▣ 출력예제 5 6 7 나의 풀이 1 N, M = map(int,input().split()) cnt=[] for i in range(N+M+1): #가장 큰 눈 끼리 더했을 때의 수만큼 리스트를 늘려줌 cnt.append(0) for i in range(1,M+1): for j in range(1,N+1): cnt..
문제 / 대푯값 / Python
·
coding test - python/기본기 문제
문제 제목: 대푯값 문제 풀이에 앞서 다음 코드를 참고하자 *최솟값 구하기 알고리즘 #최솟값 구하기 알고리즘 arr = [5,3,7,9,2,5,2,6] arrMin=float('inf') #파이썬에서 가장 큰 수를 나타냄 for i in range(len(arr)): if arr[i] < arrMin: arrMin = arr[i] #크거나 같다 vs 크다 :부호에 따라서 인덱스 번호가 달라짐 일단 arr 배열만 보면 최솟값은 2이다.
문제 / K번째 큰 수 / Python
·
coding test - python/기본기 문제
문제 제목: K번째 큰 수 현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려 고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로 큰 수를 출력 하는 프로그램을 작성하세요. 만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값 은 22입니다. ▣ 입력설명 첫 줄에 자연수 N(3
문제 / K번째 수 / Python
·
coding test - python/기본기 문제
문제 제목: K번째 수 N개의 숫자로 이루어진 숫자열이 주어지면 해당 숫자열중에서 s번째부터 e번째 까지의 수를 오름 차순 정렬했을 때 k번째로 나타나는 숫자를 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 테스트 케이스 T(1
문제 / K번째 약수/ Python
·
coding test - python/기본기 문제
문제 제목: K번째 약수 K번째 약수 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. ▣ 입력설명 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. ▣ 출력설명 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 ..