[Programmers] 코딩테스트
[Day 11] 수학, 반복문
문무스
2022. 11. 1. 15:06
주사위 개수
문제 설명:
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항:- box의 길이는 3입니다.
- box[0] = 상자의 가로 길이
- box[1] = 상자의 세로 길이
- box[2] = 상자의 높이 길이
- 1 ≤ box의 원소 ≤ 100
- 1 ≤ n ≤ 50
- n ≤ box의 원소
- 주사위는 상자와 평행하게 넣습니다.
작성한 코드:
function solution(box, n) {
var answer = 1;
var cnt = 0;
while(cnt < box.length){
answer = answer * Math.floor(box[cnt] / n);
cnt++;
}
// answer = Math.floor(box[0] / n) * Math.floor(box[1] / n )* Math.floor(box[2] / n);
return answer;
}
합성수 찾기
문제 설명:
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항:- 1 ≤ n ≤ 100
작성한 코드:
function solution(n) {
var answer = [];
var cnt = 1;
while(cnt <= n){
if(cnt != 2 && cnt != 3 && cnt != 5 && cnt != 7 && (cnt % 2 == 0 || cnt % 3 == 0 || cnt % 5 == 0|| cnt % 7 == 0)){
answer.push(cnt)
}
cnt++;
}
return answer.length;
}
최댓값 만들기(1)
문제 설명:
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
제한사항:- 0 ≤ numbers의 원소 ≤ 10,000
- 2 ≤ numbers의 길이 ≤ 100
작성한 코드:
function solution(numbers) {
var maxNum1 = 0;
var maxNum2 = 0;
var result = 0;
numbers.sort((a,b)=> a-b); // 배열을 크기순으로 정렬하기
maxNum1 = numbers.pop(); // 배열에서 가장 큰 수 뽑아내기
maxNum2 = numbers.pop(); // 가장 큰 수가 빠져나간 배열에서 다시 가장 큰 수 뽑아내기
result = maxNum1 * maxNum2 // 가장 큰 수 2개 곱하기
return result;
}
function solution(numbers) {
var result = 0;
numbers.sort((a,b)=> b-a); // 가장 큰 순서대로 정렬하면
result = numbers[0] * numbers[1] // 인덱스 0, 1 곱하기
return result;
}
팩토리얼
문제 설명:
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i! ≤ n
- 0 < n ≤ 3,628,800
작성한 코드:
function solution(n) {
var answer = 1;
var cnt = 1;
while(cnt <= n){
answer = answer * cnt;
if(answer > n){
return cnt - 1;
} else if(answer == n){
return cnt;
}
cnt++;
}
}
출처:
https://school.programmers.co.kr/
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr