[선형 자료구조 ] 배열 - 두 수의 최대 합 ✅ (문풀)

김수연·2022년 9월 18일
0
post-thumbnail

// 두 수의 최대 합
function answer(nums) {
    let result = [];
	
  	result = nums[0] > nums[1] ? [nums[0], nums[1]] : [nums[1], nums[0]];
  
  	for (let i = 2; i < nums.length; i++){
    	if(nums[i] > result[0]){
          	result[1] = result[0]; // [18, 5]: 하나씩 밀린다고 생각
        	result[0] = nums[i]; 
        }else if (nums[i] > result[1]){
        	result[1] = nums[i]; // [18, 6]... 반복
        }
    }
  
    return result;
  }
  
  /* main code */
  let input = [
    // TC: 1
    [-11, 5, 18, -2, -3, 6, 4, 17, 10, 9],
  
    // TC: 2
    [3, 7, -14, 2, -6, 13, -20, -2, -7, 6, -17, -5, 14, -9, 19],
  
    // TC: 3
    [
      -15, -4, -8, 12, 12, -8, -8, 9, 10, 15, -2, 10, -14, 2, 13, 19, -9, 3, -18,
      14,
    ],
  ];
  
  for (let i = 0; i < input.length; i++) {
    process.stdout.write(`#${i + 1} `);
    console.log(answer(input[i]));
  }
  

삼항 연산자로 result 값을 초기화:
nums[0], nums[1] 둘 중 큰 값을 result[0], 그다음 result[1]로 저장
result[0], result[1] 값과 nums[i]값을 비교
nums[i] > reuslt[0]: result[1] = result[0], result[0] = result[i]
nums[i] > result[1]: result[1] = nums[i]

profile
길을 찾고 싶은 코린이 of 코린이

0개의 댓글