본문 바로가기
[파이썬]10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기 예로, 10~15까지의 각 숫자 분해하여 곱하기의 전체 합은 다음과 같다. 10 = 1 * 0 = 0 11 = 1 * 1 = 1 12 = 1 * 2 = 2 13 = 1 * 3 = 3 14 = 1 * 4 = 4 15 = 1 * 5 = 5 그러므로, 이 경우의 답은 0+1+2+3+4+5 = 15 sum = 0 for i in range(10, 1000): if i 2022. 10. 3.
[파이썬]Dash Insert DashInsert 함수는 숫자로 구성된 문자열을 입력받은 뒤, 문자열 내에서 홀수가 연속되면 두 수 사이에 - 를 추가하고, 짝수가 연속되면 * 를 추가하는 기능을 갖고 있다. (예, 454 => 454, 4546793 => 454*67-9-3) DashInsert 함수를 완성하자. 입력 - 화면에서 숫자로 된 문자열을 입력받는다. "4546793" 출력 - *, -가 적절히 추가된 문자열을 화면에 출력한다. "454*67-9-3" num = (input("숫자입력: ")) result_array = [] for i in range(len(num)-1): if (int(num[i])%2==0) and (int(num[i+1])%2==0): result_array.append(num[i]) result_.. 2022. 10. 3.
[파이썬]2진법으로 자연수 나타내기 2진법이란, 어떤 자연수를 0과 1로만 나타내는 것이다. 예를 들어 73은 64(2^6)+8(2^3)+1(2^0)이기 때문에 1001001으로 표현한다. 어떤 숫자를 입력받았을 때 그 숫자를 2진법으로 출력하는 프로그램을 작성하시오. #2진법으로 자연수 나타내기 num = int(input("숫자를 입력하시오: ")) result_list = [] while num > 0: if num % 2 == 1: result_list.append(str(1)) elif num % 2 == 0: result_list.append(str(0)) num = num // 2 print(''.join(result_list)) 10진수 수를 2로 계속 나누어 나머지들을 역순으로 읽는 방법을 사용해서 문제를 풀었다. 2022. 10. 3.
[파이썬]완전수 구하기 자기 자신을 제외한 모든 양의 약수들의 합이 자기 자신이 되는 자연수를 완전수라고 한다. 예를 들면, 6과 28은 완전수이다. 6=1+2+3 // 1,2,3은 각각 6의 약수 28=1+2+4+7+14 // 1,2,4,7,14는 각각 28의 약수 입력으로 자연수 N을 받고, 출력으로 N 이하의 모든 완전수를 출력하는 코드를 작성하라. N = int(input("자연수를 입력해주세요: ")) def perfect_number(N): perfect_num = [] for num in range (1, N+1): sum = 0 for i in range(1, num): if num%i == 0: sum += i else: pass if sum == num: perfect_num.append(sum) return.. 2022. 10. 3.
[파이썬]1~1000에서 각 숫자의 개수 구하기 예로 10 ~ 15 까지의 각 숫자의 개수를 구해보자 10 = 1, 0 11 = 1, 1 12 = 1, 2 13 = 1, 3 14 = 1, 4 15 = 1, 5 그러므로 이 경우의 답은 0:1개, 1:7개, 2:1개, 3:1개, 4:1개, 5:1개 list_n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in range(1, 1000): for n in range(0, len(str(i))): a = str(i)[n] list_n [int(a)] += 1 print(list_n) 1~1000에서 각 숫자의 개수 구하기 - 코딩도장 (codingdojang.com) 코딩도장 프로그래밍 문제풀이를 통해서 코딩 실력을 수련 codingdojang.com 2022. 10. 2.
[파이썬]Special Sort n개의 정수를 가진 배열이 있다. 이 배열은 양의정수와 음의 정수를 모두 가지고 있다. 이제 당신은 이 배열을 좀 특별한 방법으로 정렬해야 한다. 정렬이 되고 난 후, 음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다. 예. -1 1 3 -2 2 ans: -1 -2 1 3 2. N_list = [int(x) for x in input("공백을 구분자로 숫자를 입력: ").split()] N_Negative = [] N_Positive = [] for i in N_list: if i0: N_Positive.append(i) print(N_Negative + N_Positive) 처음에 input으로 숫자들을 입력받을수있도록 하였습니다 Special .. 2022. 10. 2.
[파이썬]Duplicate Numbers 0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오. sample inputs: 0123456789 01234 01234567890 6789012345 012322456789 sample outputs: true false false true false inputs = '1234567890 2039485095 3434234234 0987654321' inputs = inputs.split() for i in inputs: i_sort = sorted(i) if ''.join(i_sort) == '0123456789': print(True, end=" ") else: print(False, end=" ") sort를 사.. 2022. 10. 2.
[파이썬] 피보나치 수열 피보나치 수열이란, 첫 번째 항의 값이 0이고 두 번째 항의 값이 1일 때, 이후의 항들은 이전의 두 항을 더한 값으로 이루어지는 수열을 말한다. 예) 0, 1, 1, 2, 3, 5, 8, 13 인풋을 정수 n으로 받았을때, n 이하까지의 피보나치 수열을 출력하는 프로그램을 작성하세요 n = int(input()) list = [0, 1] def fibonach(n): x = 0 while len(list) 2022. 10. 2.
[파이썬]프로젝트 오일러 #7 소수를 크기 순으로 나열하면 2, 3, 5, 7, 11, 13, ... 과 같이 됩니다. 이 때 10,001번째의 소수를 구하세요. n = 2**20 primes = [] #소수를 담을 list table = [False, False] + [True]*(n-1) for i in range(2, n+1): if table[i]: primes.append(i) for j in range(2*i, n+1, i): table[j] = False print(primes[10000]) #10001번째 값을 꺼낸다. 소수를 구하는 방법은 프로젝트 오일러 5번 문제에 사용했던 table을 만들고 소수의 배수를 하나씩 False로 지워나가는 방식을 사용하였다. 문제점이 있다면 에라토스테네스의 체를 사용하기 위해 맨처음 .. 2022. 9. 27.