본문 바로가기

분류 전체보기

(183)
[6주_1일차] 프로그래머스-나누어 떨어지는 숫자 배열(Python) 문제 설명array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.제한사항arr은 자연수를 담은 배열입니다.정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.divisor는 자연수입니다.array는 길이 1 이상인 배열입니다.  def solution(arr, divisor): answer = [] for i in range(len(arr)): if arr[i]%divisor==0: answer.append(arr[i]) else: ..
[5주_7일차] 백준-1978 소수(Python) 문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.입력첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.출력주어진 수들 중 소수의 개수를 출력한다.   def is_prime(num): if num   -2보다 작으면 소수가 아님(0,1)-2는 소수-짝수는 소수가 아니므로 False 반환-홀수인 경우에는 3부터 시작하여 제곱근까지 반복하며 나누어지는 수가 있는지 확인(소수 판별) *제곱근까지만 반복하는 이유-작은 약수의 짝인 큰 약수는 항상 작은 약수의 배수 -제곱근 이후의 약수들은 이미 제곱근 이하의 수에서 짝으로 확인되었기 때문
[5주_5일차] 백준-17425 약수의 합(Python) 문제두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다.자연수 N이 주어졌을 때, g(N)을 구해보자.입력첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 둘째 줄부터 테스트 케이스가 한 줄에 하나씩 주어지며 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.출력각각의 테스트 케이스마다, 한 줄에 하나씩 g(N)를 출력한다.  import sysinput = sys.s..
[5주_6일차] 백준-2609 최대공약수와 최소공배수(Python) 문제두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.입력첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.출력첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.   import sysimport mathinput = sys.stdin.readline()A = int(input.split()[0])B = int(input.split()[1])gcd = math.gcd(A, B)lcm = abs(A * B) // gcdprint(gcd)print(lcm) -math라이브러리의 gcd함수로 최대공약수 구하기-두 수의 절댓값을 곱한 뒤 최대공약수로 나눈..
[5주_4일차] 백준-17427 약수의 합2(Python) 문제두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다.자연수 N이 주어졌을 때, g(N)을 구해보자.입력첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.출력첫째 줄에 g(N)를 출력한다.  N = int(input())total_divisors_sum = 0for i in range(1, N + 1): current_divisors_sum = 0 for k in range..
[5주_3일차] 프로그래머스-콜라츠 추측(Python) 문제 설명1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.제한 사항입력된 수,..
[5주_2일차] 프로그래머스-없는 숫자 더하기(Python) 문제 설명0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.제한사항1 ≤ numbers의 길이 ≤ 90 ≤ numbers의 모든 원소 ≤ 9numbers의 모든 원소는 서로 다릅니다. def solution(numbers): answer = 0 all_numbers = set(range(10)) numbers_list=set(numbers) answer_list=all_numbers-numbers_list answer=sum(answer_list) return answer  -0부터 9까지의 숫자를 모..
[5주_1일차] 프로그래머스-음양 더하기(Python) [문제 설명]어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.  [제한사항]absolutes의 길이는 1 이상 1,000 이하입니다.absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.signs의 길이는 absolutes의 길이와 같습니다.signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. def solution(absolutes, signs): answer = 0 for i in range(len(absol..