# 문제1 "안녕 내 이름은 제시카야"라는 문장을 프린트하는 함수 'greet’를 만드시오
```javascript=
function greet(){
console.log("안녕 내 이름은 제시카야")
}
greet()
```
# 문제2 이름을 매개변수로 전달받아 다양한 이름을 프린트 할 수 있게 함수를 수정하시오
```javascript=
//예) “안녕 내 이름은 에밀리야”, “안녕 내 이름은 할리야”
function greetUpdate(name){
console.log("안녕 내 이름은", name + "야")
}
greetUpdate("에밀리")
greetUpdate("할리")
```
# 문제3 매개변수로 전달받은 이름을 반환하게 함수를 수정하시오
```javascript=
function greetValue(name){
console.log("안녕 내 이름은", name + "야")
return name
}
let result = greetValue("철수")
console.log("매개변수 name :", result)
```
# 문제4 meetAt 함수를 만들어주세요.
```javascript=
// 인자를 세개 받습니다.
// 첫번째 인자는 년도에 해당하는 숫자입니다.
// 두번째 인자는 월에 해당하는 숫자입니다.
// 세번째 인자는 일에 해당하는 숫자입니다.
// 년도 인자만 받았을 경우 → "1234년" 과 같은 형식의 문자열을 리턴 해주세요.
// 년도,월 인자를 받았을 경우 → 년도와 월을 조합해서 "1234년 5월" 과 같은 형식의 문자열을
// 리턴 해주세요.
// 년도,월,일 인자를 전부 받았을 경우 → 년도,월,일을 조합해서 "1234/5/6" 과 같은 형식의 문자열을
// 리턴 해주세요.
// 결과 예시
// meetAt(2022); // 결과 --> 2022년
// meetAt(2032, 3); // 결과 --> "2032년 3월"
// meetAt(1987, 10, 28); // 결과 --> "1987/10/28"
function meetAt(year, month, day) {
if (arguments.length === 1) {
return year + "년"
} else if (arguments.length === 2) {
return year + "년 " + month + "월"
} else if (arguments.length === 3) {
return year + "/" + month + "/" + day
}
}
console.log(meetAt(2025)); // "2025년"
console.log(meetAt(2025, 2)); // "2025년 2월"
console.log(meetAt(2025, 2, 14)); // "2025/2/14"
```
# 문제5 findSmallestElement 함수를 구현해 주세요.
```javascript=
// findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 배열입니다.
// arr 의 값들 중 가장 작은 값을 리턴 해주세요.
// 만일 arr 가 비어있으면 0을 리턴 해주세요.
// 예를 들어, 다음과 같은 배열이 인자(input)으로 들어왔다면 0이 리턴 되어야 합니다.
// 이용되는 배열
// [100,200,3,0,2,1]
function findSmallestElement(arr){
// 배열인지 확인 (Array.isArray 사용)
if (!Array.isArray(arr)) {
console.log("배열이 아닙니다.");
return;
}
// 숫자로만 이루어진 배열인지 확인 (every 사용)
if (!arr.every(num => typeof num === "number")) {
console.log("배열에 숫자 외의 값이 포함되어 있습니다.");
return;
}
// 배열이 비어있는지 확인
if(arr.length == 0){
console.log("배열이 비어있습니다.")
return 0;
}
// 가장 작은 값 return
let min = arr[0];
for (let num of arr) {
if (num < min) {
min = num;
}
}
return min;
}
let array = [100, 200, 3, 0, 2, 1]
let resultArray = findSmallestElement(array)
console.log(resultArray)
```
# 문제6 돈을 매개변수로 받으면 몇개의 지폐와 동전이 필요한지 최소 개수를 계산해주는 함수를 만드시오
```javascript=
// 출력예 )
// 12300인 경우
// 50000 X 0
// 10000 X 1
// 5000 X 0
// 1000 X 2
// 500 X 0
// 100 X 3
function giveChange(money){
const MAX_COST = Number.MAX_SAFE_INTEGER //최대 비용 설정
let oman = 0 //오만원권 개수
let man = 0 //만원권 개수
let ochen = 0 //오천원권 개수
let chen = 0 //천원권 개수
let oback = 0 //500원 개수
let back = 0 //100원 개수
let osip = 0 //50원 개수
let sip = 0 //10원 개수
let o = 0 // 5원 개수
let il = 0 //1원 개수
// money가 숫자인지 확인
if (typeof money !== 'number') {
console.log("입력된 값은 숫자가 아닙니다.");
return;
}
// 최대 비용을 넘지 않도록 확인
if (money > MAX_COST) {
console.log("비용이 너무 큽니다. 최대 비용은", MAX_COST, "입니다.");
return;
}
//5만원권 세기
if (money>50000){
oman = Math.floor(money/50000)
money -= 50000*oman
}
//만원권 세기
if(money>10000){
man = Math.floor(money/10000)
money -= 10000*man
}
//오천원권 세기
if(money>5000){
ochen = Math.floor(money/5000)
money -= 5000*ochen
}
//천원권 세기
if(money>1000){
chen = Math.floor(money/1000)
money -= 1000*chen
}
//500원 세기
if(money>500){
oback = Math.floor(money/500)
money -= 500*oback
}
//100원 세기
if(money>100){
back = Math.floor(money/100)
money -= 100*back
}
//50원 세기
if(money>50){
osip = Math.floor(money/50)
money -= 50*osip
}
//10원 세기
if(money>10){
sip = Math.floor(money/10)
money -= 10*sip
}
//5원 세기
if(money>5){
o = Math.floor(money/5)
money -= 5*o
}
//1원 세기
if(money>1){
il = Math.floor(money/1)
money -= 1*il
}
console.log("50000" + " X " + oman + "\n"
+"10000" + " X " + man + "\n"
+"5000" + " X " + ochen + "\n"
+"1000" + " X " + chen + "\n"
+"500" + " X " + oback + "\n"
+"100" + " X " + back + "\n"
+"50" + " X " + osip + "\n"
+"10" + " X " + sip + "\n"
+"5" + " X " + o + "\n"
+"1" + " X " + il + "\n"
)
}
giveChange(12300)
```