https://school.programmers.co.kr/learn/courses/30/lessons/120806?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 설명]
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
[나의 풀이]
def solution(num1, num2):
answer = int(num1/num2 * 1000)
return answer
[다른 풀이]
def solution(num1, num2):
return int(num1 / num2 * 1000)
지역변수 answer를 활용하지 않았을 때의 장점?
-변수 저장을 하는 비용을 절감
-함수화 된 코드는 굳이 변수에 담지 않더라도 return 값으로 주면, 차후에 x = solution(someting) 같은 형태로 불러와서 사용이 가능하므로 재사용이 없는 함수 내 지역변수는 굳이 변수에 담지 않는 것을 추천한다고 함
solution = lambda x, y: 1000 * x // y
import math
def solution(num1, num2):
return math.trunc(num1 / num2 * 1000)
버림(Trunc): 해당 값에서 0에 가까운 정수를 선택한다, 내장 함수가 아닌 math라이브러리를 사용
-참고
파이썬 반올림, 올림, 내림, 버림 - round, ceil, floor, trunc의 모든 것
목적 알고리즘 문제 풀이 시 숫자를 다룰 때, ~ 번째 자리에서 주로 반올림을 하고, 이 값을 구하는 문제가 있다. 또한 올림, 내림, 버림 형태는 파이썬에서 어떻게 다뤄야할 지 알아보도록 하자.
yaneodoo2.tistory.com