Programmers Coding test/배열 유형

[프로그래머스] 배열 내에서, 최댓값 반환

Lethargin 2023. 5. 31. 00:02

Q1. [3, 5, 6, 1, 2, 4]과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오.

 

A1.

<로직>

-배열 안의 모든 다른 숫자와 비교한다. -> 반복문 2번 사용

-다른 모든 값보다 크다면, 반복문을 중단한다.

function solution(array) {
  
  //1. num이라는 실험군 차출
  for (let i = 0; i<array.length; i++) {
    let num = array[i];
    for (let j = 0; j<array.length; j++) {
      if (num < array[i]) {
        break; //2. 만약, 대조군 중에 실험군보다 큰 애가 있다면 -> 실험군 탈락이어서 break
      }
      if (j === array.length -1) {  //⭐️1. j는 대조군의 인덱스를 의미한다. 2. array.length-1이라는건, 반복을 끝까지 돌았다는 뜻.
        return num;
      }
    }
  }
}

 

A2. 

<로직>

-일단 가장 큰 수를 지정해서 변수에 할당해둔다.

-배열 내에서 반복문을 돌며 -> 그 제일 큰 변수랑 비교한다.

function solution(array) {
  //1.가장 큰 수를 담을 변수 -> 0번째 인덱스 값으로 초기화한다.
  let maxNum = array[0];

  //2.반복문을 돈다.
  for (let i = 0; i < array.length; i++) {
    //배열 내, 더 큰 수가 있다면 -> maxNum 값 바뀜
    if (array[i] > maxNum) {
      maxNum = array[i]
    }
  }
  return maxNum
}

 

 


Q2.

 

 

답안1) for문

 

답안2) Math.max