[프로그래머스]코딩테스트 입문 | 복습 Day1 - Day3

sun_U·2023년 6월 12일
0
post-thumbnail

프로그래머스 코딩테스트 입문 복습

Day1. 사칙연산

1. 두 수의 합


문제
정수 num1과 num2가 주어질 때, num1과 num2의 합을 return하도록 solution 함수를 완성해주세요.

제출 코드

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

2. 두 수의 차


문제
정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요.

제출 코드

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

3. 두 수의 곱


문제
정수 num1, num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요.

제출 코드

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

4. 몫 구하기


문제
정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.

제출 코드

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

Day2 사칙연산, 조건문, 배열

5. 두 수의 나눗셈


문제
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

제출 코드

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

6. 숫자 비교하기


문제
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.

제출 코드

def solution(num1, num2):
    if num1 == num2:
        return 1
    else:
        return -1

7. 분수의 덧셈


문제
첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제출 코드

from math import gcd

def solution(numer1, denom1, numer2, denom2):
    numerator = (denom1*numer2) + (numer1*denom2) 
    denominator = (denom1*denom2)
    gcd_value = gcd(numerator, denominator)
    answer = [numerator/gcd_value, denominator/gcd_value]
    return answer

math 모듈 gcd() : 최대공약수를 구해주는 함수

통분을 해서 더한 분모와 분자값을 각각 저장하고, gcd() 함수를 사용해 두 분모의 최대 공약수로 각각 나누어 약분한 분자와 분모의 값을 return 한다.

8. 배열 두 배 만들기


문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

제출 코드

def solution(numbers):
    answer = [num*2 for num in numbers]
    return answer

List Comprehension 사용해서 새로운 리스트 생성

Day3 사칙연산, 배열, 수학

9. 나머지 구하기


문제
정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.

제출 코드

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

10. 중앙값 구하기


문제
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

제출 코드

def solution(array):
    array.sort()
    answer = array[len(array)//2]
    return answer

.sort()를 사용해 오름차순 정렬 후 가운데 인덱스값으로 중앙값 구하기

11. 최빈값 구하기


문제
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

제출 코드

def solution(array):
    cnt_dict = {}
    
    for arr in array:
        if arr not in cnt_dict.keys():
            cnt_dict[n] = 1
        else:
            cnt_dict[n] += 1
            
    conv_dict = {v:k for k,v in cnt_dict.items()}
    
    answer = conv_dict.get(max(list(conv_dict.keys())))
    
    if list(cnt_dict.values()).count(max(conv_dict.keys())) > 1:
        answer = -1

    return answer

배열에서 숫자와 그 숫자의 개수를 Dictionary 형태로 저장.
숫자의 개수와 숫자 순서로 담긴 Dictionary도 생성 후 개수가 가장 큰 값의 value값(숫자)을 answer로 저장.
숫자 개수를 리스트로 담아 가장 큰 개수가 한 개 이상일 때는 -1을 answer로 return.

12. 짝수는 싫어요


문제
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

제출 코드

def solution(n):
    answer = [num for num in range(1, n+1, 2)]
    return answer

if문을 사용해 홀수 조건을 만들 수도 있지만 간단하게 range() 함수의 start를 1, step을 2로 주었다.

profile
Data Engineer🐣

0개의 댓글