Til

Til 24.03.15 파이썬 코딩테스트 기초

dini_dini 2024. 3. 15. 13:53

>>n의 배수 고르기

 
def solution(n, numlist):
    answer=[ ] # 엔의 배수 들어갈 리스트를 초기화
    for i in numlist:
        if i%n == 0: #엔의 배수일경우
            answer.append(i) #엔서리스트에 아이를 추가
    return answer
 

 

 

>>n번째 원소까지 구하기

 

 
def solution(num_list, n):
    return num_list[:n] # 넘리스트를 엔까지 구함
   

 

num_list [:n] : 이게 항상 헷깔림 - > n번째 까지 

 

>>조건에 맞게 수열변환1

 

----오류코드----

#오류코드
def solution (arr, k):
   
    even_sum =[]
    odd_mul =[]
    for i in arr:
        if k%2 == 0:
            even_sum.append(i+k)
            return even_sum
        else:
            odd_mul.append(i*k)
            return odd_mul
  

위와같이 하면 arr배열의 첫번째 값만 반환이됨

 

#수정1
def solution (arr, k):
   
    even_sum =[]
    odd_mul =[]
    for i in arr:
        if k%2 == 0:
            even_sum.append(i+k)
        else:
            odd_mul.append(i*k)
    if k%2 ==0: #짝수홀수 인지 판단하고 리턴하는것을 밖으로빼줌
        return even_sum
    else:
        return odd_mul

 

내용이 간단한것에 비해 너무 김

 

 # 좀더 짧게 수정한 코드
def solution (arr, k):
    if k%2 ==1:
        return [k*i for i in arr
    else:
        return [k+i for i in arr]

[ ] 를써서 바로 리턴해주니 코드도 짧고 보기도 편해짐

 

 

>>조건에 맞게 수열변환

 

 
def solution(arr):
    answer = []
    for i in arr:
        if i >=50 and i % 2 ==0 : #원소가 50보다 크거나 같고 짝수라면
            answer.append(i/2)
        elif i < 50 and i %2 == 1 : #원소가 50보다 작고 홀수라면
            answer.append(i*2)
        else: #그외의 경우 그대로
            answer.append(i)
    return answer
       

 

그외의 경우를 안써서 오류가 났었음 문제이해를 제대로 해야함 ㅇㅇ

 

>>n보다 커질때까지 더하기

 

 
def solution (numbers, n):
    answer = 0 # 더할거니까 0으로 초기화
    for num in numbers:
        if answer <=n:
            answer += num
    return answer
 

 

그if 외의 경우는 구하지 않음으로 바로 리턴 ㄱㄱ