-
프로그래머스 팩토리얼STUDY/Code TEST 2023. 6. 27.
[level 0] 팩토리얼 - 120848
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
성능 요약
메모리: 33.4 MB, 시간: 0.03 ms
구분
코딩테스트 연습 > 코딩테스트 입문
채점결과
Empty
문제 설명
i
팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.- i! ≤ n
제한사항
- 0 <
n
≤ 3,628,800
입출력 예
n result 3628800 10 7 3
입출력 예 설명
입출력 예 #1
- 10! = 3,628,800입니다.
n
이 3628800이므로 최대 팩토리얼인 10을 return 합니다.
입출력 예 #2
- 3! = 6, 4! = 24입니다.
n
이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
코드
function solution(n) { let a = 1 let result = a while(a > 0){ result *= a if(result === n){ return a }else if(result > n){ return a-1 } a++ } }
코드 설명
while문으로 return 값이 나올 때까지 반복문을 돌리게 했다.
반복문 안에서 result에 a를 곱한 값을 넣어준다.
반복문 마지막에 a의 값을 계속 1씩 더해주면서 result값이 n과 같을 때 혹은 n보다 클 때까지 실행한다.
팩토리얼 값을 구할 때에는 재귀함수를 이용했지만, 이 문제는 팩토리얼 값이 입력값에 가장 근접한 정수를 구하는 것이기 때문에
1부터 n까지 순서대로 더하는 식으로 계속 값을 비교해주해면서 값을 도출해 내었다!'STUDY > Code TEST' 카테고리의 다른 글
프로그래머스 가운데 글자 가져오기 (0) 2023.06.29 프로그래머스 2016년 (0) 2023.06.28 프로그래머스 문자열 밀기 (0) 2023.06.20 프로그래머스 왼쪽 오른쪽 (0) 2023.06.19 프로그래머스 저주의 숫자 3 (0) 2023.06.16