[프로그래머스 JS] 홀수 vs 짝수( for문, if문 / map(), 삼항연산자 / % )

반응형

 

🎈 문제설명

정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.

🎈 제한사항

  • 5 ≤ num_list의 길이 ≤ 50
  • -9 ≤ num_list의 원소 ≤ 9

🎈 입출력 예

num_list result
[4, 2, 6, 1, 7, 6] 17
[-1, 2, 5, 6, 3] 8

🎈 입출력 예 설명

입출력 예 #1

  • 홀수 번째 원소들의 합은 4 + 6 + 7 = 17, 짝수 번째 원소들의 합은 2 + 1 + 6 = 9 이므로 17을 return합니다.

입출력 예 #2

  • 홀수 번째 원소들의 합은 -1 + 5 + 3 = 7, 짝수 번째 원소들의 합은 2 + 6 = 8 이므로 8을 return합니다.
  •  

💻 나의 풀이

나의풀이

function solution(num_list) {

    let odd = Number('');
    let even = Number('');

    for(i=0;i<num_list.length;i++) {
        if(i%2==0) {
            // 홀수
            odd += num_list[i]
        } else {
            //짝수
            even += num_list[i]
        }
    }


    var answer = Math.max(odd,even);
    return answer;
}

 

👀 문자열을 숫자로 바꿔주는 JavaScript 메서드는 주로 두 가지가 있습니다

Number()와 parseInt(), parseFloat()입니다.

이들 메서드는 문자열을 숫자로 변환할 때 유용하게 사용할 수 있습니다.

1. Number() 메서드

Number()는 문자열을 숫자로 변환하며, 정수와 소수 모두 변환이 가능합니다.

변환이 불가능한 문자열의 경우 NaN을 반환합니다.

let str1 = "123";
let num1 = Number(str1);  // 123

let str2 = "123.45";
let num2 = Number(str2);  // 123.45

2. parseInt() 메서드

parseInt()는 문자열을 정수로 변환합니다.

문자열에 소수점이 있으면 소수점 이하를 무시하고, 숫자가 아닌 문자가 포함되면 그 전까지의 숫자만 변환합니다.

let str = "123.45";
let num = parseInt(str);  // 123

let strWithText = "123abc";
let numWithText = parseInt(strWithText);  // 123

3. parseFloat() 메서드

parseFloat()는 문자열을 실수로 변환하며, 소수점을 포함한 숫자를 변환할 때 사용합니다.

let str = "123.45";
let num = parseFloat(str);  // 123.45

변환 실패 시

문자열이 숫자로 변환할 수 없는 경우, 각 메서드는 NaN을 반환합니다.

let str = "abc";
let num = Number(str);  // NaN

예시: 문자열을 숫자로 변환하기

 
let numString = "456";
let number = Number(numString);  // 456
console.log(number);

let floatString = "123.45";
let floatNumber = parseFloat(floatString);  // 123.45
console.log(floatNumber);

💻 다른 사람 풀이

다른 사람 풀이

function solution(num_list) {
    let even = 0;
    let odd = 0

    num_list.map((v, idx) => {
        !(idx % 2) ? even += v : odd += v; 
    })

    return odd > even ? odd : even; 
}

 

💡 내 코드와 차이점

for문과 if문, Math.max()을 사용하지 않고

map() 메서드와 삼항연산자를 이용하여 값을 반환함

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유