[JS]12. 종합 문제 (1)
in JS
1. 최솟값 구하기
두 수의 정수를 입력 받아 최소값을 반환해주는 함수를 구현하시오.
function answer(x, y) {
let min;
// 구현
min = x >= y ? y : x
// 구현 종료
return min;;
}
let input = [
// TC : 1
[16, 3],
// TC : 2
[-3, 1],
// TC :3
[1000, 525],
];
for (let i = 0; i < input.length; i++) {
console.log(`#${i + 1} ${answer(input[i][0], input[i][1])}`);
}
// output
// #1 3
// #2 -3
// #3 525
2. 제곱 구현
두 수 x, y를 입력 받아 x의 y 제곱 값을 반환해주는 함수를 구현하시오 제곱 연산자(**)는 사용하지 않는다.
function answer(x, y) {
let result = 1;
// 구현
// result = Math.pow(x, y)
for (let i = 0; i < y; i++){
result *= x
}
// 구현 종료
return result;
}
let input = [
// TC : 1
[2, 3],
// TC : 2
[4, 6],
// TC :3
[1, 100],
];
for (let i = 0; i < input.length; i++) {
console.log(`#${i + 1} ${answer(input[i][0], input[i][1])}`);
}
// output
// #1 8
// #2 4096
// #3 1
3. 놀이기구 입장 제한
본 놀이기구는 안전상의 이유로 키 150cm 이상만 탈 수 있다.
탑승하려는 고객이 놀이기구를 탈 수 있는지 판단하는 함수를 구현하시오.
입력 값은 객체로 이름/나이/키가 입력되며, 출력 값은 탑승가능 시 true, 불가능 시 false를 반환한다.
function answer(user) {
let permit;
// 구현
permit = user.height >= 150 ? true : false
// 구현 종료
return permit;
}
let input = [
// TC : 1
{ name: "john", age: 27, height: 181 },
// TC : 2
{ name: "alice", age: 12, height: 148 },
// TC :3
{ name: "bob", age: 14, height: 156 },
];
for (let i = 0; i < input.length; i++) {
console.log(`#${i + 1} ${answer(input[i])}`);
}
// output
// #1 true
// #2 false
// #3 true
4. 요일 구하기 ⭐️
날짜를 입력 받아 요일을 반환해주는 함수를 구현하시요.
입력 값은 문자형 날짜(datestring) 값이 입력되며, 문자형 형태의 요일을 반환한다.
function answer(str) {
// 이 접근법 기억해두기!👍
let week = new Array(
"일요일",
"월요일",
"화요일",
"수요일",
"목요일",
"금요일",
"툐요일"
);
let day;
// 구현
day = week[new Date(str).getDay()]
// 구현 종료
return day;
}
let input = [
// TC : 1
"2021-01-27",
// TC : 2
"2021-02-27",
// TC :3
"2021-03-14",
];
for (let i = 0; i < input.length; i++) {
console.log(`#${i + 1} ${answer(input[i])}`);
}
// output
// #1 수요일
// #2 툐요일
// #3 일요일
5. 중복 단어 제거
중복 단어를 제거해주는 함수를 구현하시오.
입력 값은 배열 형태로 요소들은 문자형이 입력되고, 중복 단어가 제거된 배열을 반환된다.
function answer(arr) {
let new_arr = [];
// 구현
let set = new Set(arr);
for (let item of set) {
new_arr.push(item);
}
// 구현 종료
return new_arr;
}
let input = [
// TC : 1
["john", "alice", "alice"],
// TC : 2
["Hello", "hello", "HELLO", "hello"],
// TC :3
["kiwi", "banana", "mango", "kiwi", "banana"],
];
for (let i = 0; i < input.length; i++) {
process.stdout.write(`#${i + 1}`);
console.log(answer(input[i]));
}
// output
// #1[ 'john', 'alice' ]
// #2[ 'Hello', 'hello', 'HELLO' ]
// #3[ 'kiwi', 'banana', 'mango' ]
다른 풀이 1
function answer(arr) {
let new_arr = [];
// 구현
new.Set(arr).forEach(function (item) {
new_arr.push(item)
})
// 구현 종료
return new_arr;
}
다른 풀이 2
function answer(arr) {
let new_arr = [];
// 구현
new_arr = Array.from(new Set(arr))
// 구현 종료
return new_arr;
}