개발일기 [Python 파이썬]

[파이썬] AI 알고리즘 문제 : 기초 05

neullo 2024. 3. 11. 10:22

1. 길이에 따른 연산

 

정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.

 

def solution(num_list):
	if len(num_list) >= 11:
    	return sum(num_list)
    
    else:
    	result = 1
        for num in num_list:
        return *= num
	return result

 

설명:

  1. 먼저 입력 리스트의 길이를 확인합니다.
  2. 리스트의 길이가 11 이상인 경우에는 sum() 함수를 사용하여 리스트의 모든 원소의 합을 반환합니다.
  3. 리스트의 길이가 10 이하인 경우에는 각 원소를 곱하여 결과를 계산합니다. 처음에는 결과를 1로 초기화하고, 반복문을 통해 각 원소를 곱하여 최종 결과를 얻습니다.
  4. 계산된 결과를 반환합니다.

 


 

2. 소문자로 바꾸기

알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.

 

def solution(myString):
    return myString.lower()

 

이 함수는 입력으로 받은 문자열 myString을 소문자로 변환한 후 반환합니다.

 

설명:

  1. lower() 메서드는 문자열의 모든 알파벳을 소문자로 변환합니다.
  2. 입력으로 받은 문자열에 이 메서드를 적용하여 소문자로 변환된 문자열을 반환합니다.

3. 원소들의 곱과 합

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

 

def solution(num_list):
    total_times = 1 
    total_sum = 0
    
    for num in num_list:
        total_times *= num
        total_sum += num
        
    if total_times < total_sum ** 2:  
        return 1 
    else:
        return 0

 

이 함수는 입력으로 받은 리스트 num_list의 원소들의 곱과 합을 계산한 후, 곱이 합의 제곱보다 작은지 확인하여 결과를 반환합니다.

 

설명:

  1. product 변수는 리스트의 모든 원소를 곱하기 위해 초기값을 1로 설정합니다.
  2. total_sum 변수는 리스트의 모든 원소를 더하기 위해 초기값을 0으로 설정합니다.
  3. 리스트의 모든 원소에 대해 반복하면서 각 원소를 product에 곱하고, total_sum에 더합니다.
  4. 곱과 합의 제곱을 비교하여 조건에 따라 1 또는 0을 반환합니다.

4. 문자열 곱하기

 

문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.

 

def solution(my_string, k):
    repeated_string = my_string*k
    return repeated_string

 

 


5. 공배수

 

정수 number와 nm이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.

 

def solution(number, n, m):
    if number % n == 0 and number % m == 0:
        return 1
    else:
        return 0
def solution(number, n, m):
    return 1 if number%n==0 and number%m==0 else 0
//와 %는 둘 다 나눗셈 연산자입니다. 하지만 각각의 동작 방식에는 차이가 있습니다.

// (Floor Division 또는 몫 연산자): 두 수를 나누고 그 결과에서 소수점 이하를 버리고 정수 부분만 반환합니다. 이는 정수 나눗셈 연산입니다. 예를 들어, 5 // 2는 2를 반환합니다.
% (Modulo 연산자): 나눗셈의 나머지를 반환합니다. 예를 들어, 5 % 2는 1을 반환합니다.

따라서, 주어진 문제에서는 배수를 판단해야 하므로 % 연산자를 사용하여 나머지가 0인지 확인해야 합니다. // 연산자는 나눗셈의 몫을 반환하므로 배수를 판단하는 데 사용할 수는 없습니다.