2023. 2. 15. 21:06ㆍAlgorithm
1. 두 수의 나눗셈
(문제 설명, 제한사항, 입출력 예)
함수의 매개변수로 주어진 정수 num1, num2를 나눈 값에 1,000을 곱한 후 정수 부분만 return 하라는 문제이다.
(내가 생각한 풀이 과정)
말 그대로 두 값을 나누고, 1000을 곱하고, 정수로 반환시킨다.
(코드)
💡 내 코드
def solution(num1, num2):
return int(num1/num2*1000)
2. 숫자 비교하기
(문제 설명, 제한사항, 입출력 예)
함수의 매개변수로 들어온 정수 num1, num2가 같으면 1, 다르면 -1을 반환하라.
(내가 생각한 풀이 과정)
당연히 if문을 쓸건데, 파이썬스러운 코드를 활용했다.
(코드)
💡 내 코드
def solution(num1, num2):
return 1 if num1==num2 else -1
3. 분수의 덧셈
(문제 설명, 제한사항, 입출력 예)
첫 번째 분자와 분모로 numer1과 denom1, 두 번째 분자와 분모로 numer2, denom2가 주어질 때, 두 분수의 합을 기약 분수로 나타내라.
(내가 생각한 풀이 과정)
분모를 denom1과 denom2를 곱한 값으로 우선 정한다.
이에 따라 분자의 값도 numer1은 denom2를 곱하고 numer2는 denom1을 곱해 두 값을 더해준다.
이후, 두 함수를 두 분모의 최대공약수(최대 공약수는 math 모듈의 gcd 함수를 이용하는 방법)로 약분을 해주면서 결괏값을 return 한다.
(코드)
💡 내 코드
import math
def solution(numer1, denom1, numer2, denom2):
numer3, denom3 = numer1*denom2 + numer2*denom1, denom1 * denom2
gcd = math.gcd(numer3, denom3)
return [numer3, denom3] if gcd==1 else [numer3/gcd, denom3/gcd]
💡 다른 사람의 풀이 코드
분수를 쉽게 계산하게끔 도와주는 fractions 모듈을 활용하는 방법도 있다고 한다.
from fractions import Fraction
def solution(denum1, num1, denum2, num2):
answer = Fraction(denum1, num1) + Fraction(denum2, num2)
return [answer.numerator, answer.denominator]
4. 배열 두 배 만들기
(문제 설명, 제한사항, 입출력 예)
numbers 배열이 주어질 때, 각 원소를 두 배한 배열을 반환하라는 문제
(내가 생각한 풀이 과정)
리스트 컴프리헨션(List Comprehension)을 활용해서 문제를 풀었다.
(코드)
💡 내 코드
def solution(numbers):
return [i*2 for i in numbers]
💡 다른 사람의 풀이 코드
리스트 컴프리헨션으로 해결할 수 있는 문제는 람다와 map 함수로도 해결할 수 있었다.
def solution(numbers):
return list(map(lambda x: x * 2, numbers))
'Algorithm' 카테고리의 다른 글
[Programmers/Lv. 0] 코딩테스트 입문 Day 4 - 수학, 배열 (Python) (0) | 2023.03.11 |
---|---|
[Programmers/Lv. 0] 코딩테스트 입문 Day 3 - 사칙연산, 배열, 수학 (Python) (0) | 2023.02.16 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 1 - 사칙연산 (Python) (0) | 2023.02.11 |
[Algorithm] 2023년 다시 세워보는 알고리즘 공부 계획 (feat. 자기 반성) (2) | 2023.02.10 |
[Algorithm] 내가 보려고 정리하는 파이썬 연결 리스트(Linked List) 기초 (2) | 2022.06.06 |