난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제
평균 구하기
- 주어진 배열의 숫자들을 더하고 평균을 구하기
function solution(arr) {
var answer = 0;
for (let i = 0; i<arr.length; i++) {
answer += arr[i]
}
return answer/arr.length;
}
반복문으로 배열 숫자들을 더하고, 마지막에 배열 길이로 나눠줍니다
콜라츠 추측
- 어떤 수가 짝수면 2로 나누고, 홀수면 3을 곱한 뒤 1을 더해
결국 어떤 수가 1이 될 때까지 작업한 횟수 구하기 (단, 500회가 넘으면 -1)
function solution(num) {
var answer = 0;
for (let i = 0; i<=500; i++) {
if (i === 500) {
answer = -1;
break;
} else if (num === 1) {
answer = i;
break;
}
else {
if (num%2 === 0) {
num = num/2
} else {
num = num*3 + 1
}
}
}
return answer;
}
우선 500회가 되면 -1을 반환하는 조건과
num이 1이 되면 반복문을 멈추는 조건을 걸어주고,
위의 조건대로 조건문을 작성했습니다.
최대공약수와 최소공배수
- 배열 안 두개의 숫자의 최대공약수와 최소공배수 구하기
function solution(n, m) {
var answer = [];
for (let i = n; i>0; i--) {
if (n%i === 0 && m%i === 0) {
answer.push(i)
break;
}
}
for (let l = m; l<=n*m; l++) {
if (l%n === 0 && l%m === 0) {
answer.push(l)
break;
}
}
return answer;
}
반복문을 두번 사용했는데, 최대공약수를 먼저 구하고
최소공배수를 구해 배열에 넣는 방식으로 풀었습니다.
짝수와 홀수
- 인자로 들어온 수가 짝수인지 홀수인지 판단하기
function solution(num) {
var answer = '';
return num%2 === 0 ? answer = 'Even' : answer = 'Odd'
}
num 을 2로 나눠서 나머지가 0이면 짝수, 아니면 홀수로 결과를 냈습니다.
제일 작은 수 제거하기
- 숫자 배열에서 제일 작은 수 제거하기
function solution(arr) {
var answer = [];
if (arr.length === 1) {
answer.push(-1)
} else {
let minNum = arr[0]
for (let i = 1; i<arr.length; i++) {
if (minNum > arr[i]) {
minNum = arr[i]
}
}
arr.splice(arr.indexOf(minNum),1)
answer = arr
}
return answer;
}
배열의 길이가 1일때는 -1을 출력하는 조건을 먼저 주고
아닐 경우 기준이 되는 숫자 하나를 정해서 한번 반복하게 돌려 준 뒤,
splice
를 이용해 해당 수를 제거하고 반환합니다.