[Algorithm/JavaScript] 홀수/ 배열

김서윤·2021년 12월 10일
0

Algorithm/JavaScript

목록 보기
3/4

이 글은 2021년 8월 21일 티스토리에 작성된 글을 옮겨온 글입니다.

문제

1-6) 홀수 (배열에서 홀수들만 더하고 홀수 중 가장 작은 값 출력)

입력예제

12 77 38 41 53 92 85

출력예제

256
41


개념

  • 배열의 길이를 알기 위한 코드
    arr.length
    ex)배열의 마지막 요소를 찾으려면 arr.lengh-1

  • 배열의 마지막 요소에 추가하기
    arr[arr.length] = 'Hello'
    또는
    arr.push('Hello')

  • 배열 마지막 요소 제거하기
    arr.pop()

  • 배열 첫 번째 요소에 추가하기
    arr.unshift(Hello)

  • 배열 첫 번째 요소 제거하기
    arr.shift()

  • 제거하고 싶은 부분이 중간에 있는 경우 : splice
    splice로 빼낸 값이 return 값으로 들어있으며, 원본 배열도 바뀜
    - arr.splice(지울 인덱스 자리, 몇개 지울지)

    • ex) arr.splice(1,1) : 인덱스 1번부터 1개를 지울 것
    • ex) arr.splice(1) : 인덱스 1번부터 배열 끝까지 지움
    • ex) arr.splice(1,1,'Hello') : 인덱스 1번부터 1개를 지우고 그자리에 'Hello' 추가

  • 배열에서 추출하기slice
    원본 배열이 변하지 않음
const arr = [1, 2, 3, 4, 5, 6, 7];
arr.slice() //[1, 2, 3, 4, 5, 6, 7]
arr.slice(0, 3) //[1, 2, 3]         0은 포함하고 3전까지 자름
arr.slice(4, -1) //[5, 6]          -1은 마지막 인덱스
arr.slice(-5, -1) //[3, 4, 5, 6]   뒤에서 부터 셀 수 있음

  • 배열에 해당 값 있는지 확인 (true/false) (🖤문자열에서도 사용 가능)
    arr.includes('Hello') : 있으면 true

  • 배열에 해당 값의 위치 확인
    arr.indexOf('Hello') : 없으면 -1
    arr.lastIndexOf('Hello') : 배열 뒤에서부터 찾는 것도 가능

const arr = ['A', 'B', 'C', 'D', 'E'];
while (arr.indexOf('D') > -1) { //'D'가 배열에 존재할 때
  arr.splice(arr.indexOf('D'), 1); //'D'의 인덱스부터 1개를 지운다
  console.log(arr);
}
console.log(arr);


코드


1-1 내가 푼 코드

function solution(arr) {
  let answer = [], sum = 0, min = Number.MAX_SAFE_INTEGER;
  arr.forEach(element => {
    if (element % 2 == 1) { //홀수일 때
      sum += element;
      if (element < min) min = element;
    }
  });
  answer.push(sum);
  answer.push(min);
  return answer;
}
arr = [12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));
  • forEach 사용
  • Number.MAX_SAFE_INTEGER 사용
  • push 사용


1-2 정답코드

function solution(arr){
  let answer = [];
  let sum=0, min=Number.MAX_SAFE_INTTEGER;
  for(let x of arr){
    if(x%2===1){  //홀수일 때
      sum+=x;
      if(x<min) min=x;
    }
  }
  answer.push(sum);
  answer.push(min);
  return answer;
}
arr=[12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));
  • for of 문 사용
  • Number.MAX_SAFE_INTEGER 사용
  • push 사용

profile
오늘 못한 일은 내일도 못한다

0개의 댓글