Wecode 6일차

김상연·2021년 2월 21일
0

wecode

목록 보기
6/42

오늘은 첫 주차의 첫 주말이다.. 정신없이 하다보니 벌써 토요일이 되었다.

Assignment 12

함수 halfNumber를 선언하고 구현해라
1. 숫자로 된 인자 하나를 받는다.
2. 받은 값을 2로 나눈 결과를 리턴
3. 매개변수 이름은 마음대로 사용 가능

function halfNumber(value) {
	let result = value / 2;
    return value
}
halfNumber(10); // Output : 5

함수 halfAndAddNumber를 선언하고 구현하라
1. 숫자로 된 인자 하나를 받는다.
2. 1번 문제에서 만들었던 halfNumber를 호출하면서, 인자로 받았던 값을 다시 halfNumber 함수에 전달
3. halfNumber의 리턴 결과를 함수 안쪽에서 변수명 result에 정의
4. result에 1을 더한 값을 리턴

function halfAnddAddNumber(value) {
	let result = halfNumber(value);
    return result + 1
}
halfAndAddNumber(10); // Output 6

Assignment 13

meetAt 함수를 만들어라
1. 인자를 세 개 받는다(첫번째 인자는 년도, 두번째 인자는 월, 세번째 인자는, 일)
2.
-년도 인자만 받았을 경우 -> "1234년"같은 형식의 문자열을 리턴
-년도, 월 인자를 받았을 경우 -> "1234년 5월"과 같은 형식의 문자열을 리턴
-년도, 월, 일 인자를 전부 받았을 경우 -> "1234/5/6"

if문을 사용해서 처음에는 조건을 년도부터 시작했다.

function meetAt(year, month, date) {
  if(year) {
    return year+"년"
  } else if (year, month) {
    return year+"년 "+month+"월"
  } else {
    return year+"/"+month+"/"+date
  }
}

-> 위와 같이 코드를 작성하니 년도, 월, 일을 다 넣어도 년도만 뜨게 된다.
코드가 위에서부터 읽히다보니 세 개의 인자가 들어가도 첫번째 조건에서 바로 true이 되서 년도만 뜨는 문제가 발생된 것이다.

function meetAt(year, month, date) {
  if (year, month, date) {
    return year+"/"+month+"/"+date
  } else if (year, month) {
    return year+"년 "+month+"월"
  } else {
    return year+"년"
  }
}

-> 위와 같이 코드를 작성하니 잘 돌아간다. 푸는 데 한참 걸리긴했지만 if문의 조건을 설정할 때 좀 더 자세하게 짜 줘야된다는 것을 알게 됐다.

Assignment 15

addFirstAndLast 함수 안에 작성
addFirstAndLast 함수에 주어진 인자 myArray는 숫자 값으로만 이루어진 array
addFristAndLast 함수에 주어진 인자 myArray의 element와 마지막 element의 값을 더한 값을 리턴
만일 myArray에 한 개의 요소만 있다면 해당 요소의 값을 리턴, 비어있는 array라면 0을 리턴

function addFirstAndLast(myArray) {
  if (myArray.length > 1) {
  return myArray[0] + myArray[myArray.length-1]
  } else if (myArray.length === 1) {
  return myArray[0]
  } else {
  return 0;
  }
}

-> 첫 번째 조건은 첫번째와 마지막 element을 더한 값을 구해야 하므로 최소 두 개이상의 숫자가 있다는 뜻이므로 .length를 써서 조건을 부합.
두 번째 조건은 한 개의 element만 있으므로 ===를 사용하여 조건을 만들고 마지막은 나머지 조건이므로 else를 써서 코드를 구현하였다.

Assignment 16

findSmallestElement 함수를 구현해라
findSmallestElement의 인자는 숫자 값으로만 이루어진 array이다.
array의 값들 중 가장 작은 값을 리턴.
만일 array가 비어있으면 0을 리턴
예를 들어, 다음과 같은 array이 인자(input)으로 들어왔다면 1이 리턴되어야 한다.
[20, 200, 23, 1, 3, 9]

function findSmallestElement(arr) {
   if (arr.length === 0) {
     return 0;
   } else {
      let min = arr[0];
      for (let i = 0; i < arr.length; i++) {
      if (arr[i] < min ) {
        min = arr[i];
      } 
    } return min;
  }
}

-> 생각을 많이 해야 하는 문제였다. 일단 조건은 두개였다. 한 조건은 array가 비어있을 시 0을 리턴하는 것은 간단하게 작성할 수 있었지만 나머지 조건인 array의 값들 중 가장 작은 값을 리턴하는 것이 어려웠다.
min을 array[0]으로 정의했다. []안을 아무 숫자로 해도 괜찮다. 다음 for 반복문을 이용해 읽어 가게 한 다음 다시 if문으로 정의한 min보다 작은 array[i]가 있을 경우 그것이 min이 되게 다시 정의해서 return하게 했다. 계속 다르게 연습해봐야 될 것 같다.

Assignment 17

divideArrayInHalf 함수를 구현
divideArrayInHalf 함수의 인자인 array는 숫자 값으로만 구성되어 있으며 총 5개의 요소로 구성
array의 요소들 중 10과 같거나 작은 값의 요소들은 result의 맨 앞으로, 10보다 큰 값은 result의 맨뒤로 재구성된 배열을 리턴
예를 들어, array 값이 [1, 20, 10, 5, 100]때 [1, 10, 5, 100, 20]와 같은 result가 리턴되어야 함.

function divideArrayInHalf(array) {
  let result = [];
  for (let i = 4; i >= 0; i--) {
    if (array[i] <= 10) {
      result.unshift(array[i])
    } else {
      result.push(array[i])
    }
  } return result
}

-> 꼭 result = []로 지정해줘야 한다. 그리고 뒤에서부터 읽어 나가야 하기 때문에 for문을 위와 같이 쓴 것이다. unshift와 push 메소드는 알아두면 좋은 메소드다.

0개의 댓글