Coding Test/Programmers_Python

[Python] 오늘의 연습 문제 풀기 1편

  • -
728x90

2022-11-25일 직접 푼 오늘의 연습 문제에 관한 내용입니다

정답률에 대한 정보는 작성일을 기준으로 기록된 것으로 추후 변동될 수 있습니다

 

다음에 올 숫자(Lv.0)(정답률57%)

설계

0. 등차와 등비수열은 최소 3개의 원소가 들어가야 한다는 특성을 이용한다

0. 배열은 0번째 자리부터 시작하기에 실제 길이보다 1작은 위치에서 끝나는 특성을 이용한다

1. 등차인 경우 배열의 마지막 부분에 등차를 더해서 반환

2. 등차가 아닌 경우 배열의 마지막 부분에 등비를 곱해서 반환 

코드

def solution(common):
    n = common[1] - common[0]
    if common[1] + n == common[2]:
        answer = common[len(common)-1] + n
    else:
        n = common[1] / common[0]
        answer = common[len(common)-1] * n
    return answer

실행결과


각도기(Lv.0)(정답률89%)

코드

def solution(angle):
    if angle > 0 and angle<90:
        return 1
    elif angle == 90:
        return 2
    elif angle == 180:
        return 4
    else:
        return 3

실행결과


몫 구하기(Lv.0)(정답률91%)

코드

def solution(num1, num2):
    answer = num1//num2
    return answer

실행결과


콜라츠 추측(Lv.1)(정답률84%)

코드

def solution(num):
    count = 0
    while num != 1:
        if num%2==0:
            num = num/2
        else:
            num = num*3 + 1
        count += 1
    
    if count > 500:
        return -1
    else:
        return count

실행결과


평균 구하기(Lv.1)(정답률86%)

코드

def solution(arr):
    answer = sum(arr)/len(arr)
    return answer

실행결과


최대공약수와 최소공배수(Lv.1)(정답률75%)

코드

def solution(n, m):
    answer = []
    # 최대공약수
    for i in range(min(n, m)+1, 0, -1):
        if n%i == 0 and m%i ==0:
            answer.append(i)
            break
    
    # 최소공배수
    for j in range(max(n, m), n*m+1):
        if j%n == 0 and j%m == 0:
            answer.append(j)
            break
    
    return answer

실행결과

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.