프로그래머스(자바스크립트)

    인덱스 바꾸기 → 교환 메커니즘 ★★

    1차 시도 function solution(my_string, num1, num2) { let temp =my_string[num1] my_string[num1]=my_string[num2] my_string[num2]=temp return my_string; } ▶ JavaScript에서 문자열은 불변(immutable)하기 때문에, 문자열의 특정 인덱스를 직접 수정하는 것은 불가능하다 2차 시도 - 성공 function solution(my_string, num1, num2) { let arr = my_string.split(''); let temp = arr[num1]; arr[num1] = arr[num2]; arr[num2] = temp; return arr.join(''); } ▶ 문자열을 배..

    배열 회전시키기 → 배열 메서드: push, pop, unshift, shift★★

    function solution(numbers, direction) { let answer = []; if(direction == "right"){ const end=numbers.pop() numbers.unshift(end) } else { const first=numbers.shift() numbers.push(first) } return numbers; } ▶ Array.shift() 메소드는 배열의 첫 번째 요소를 제거하고, 해당 요소를 반환한다. 만약, 배열이 비어있는 경우 undefined를 반환합니다. ▶ Array.pop() 메소드는 배열의 마지막 요소를 제거하고, 해당 요소를 반환한다. 만약, 배열이 비어있는 경우 undefined를 반환합니다.

    가장 큰 수 찾기 ★ →Math.max() + spead연산자 + array.indexof()

    function solution(array) { let answer = []; const max=Math.max(...array) const index=array.indexOf(max) answer.push(max) answer.push(index) return answer; } ▶ Math.max을 이용해서 최대값을 구한다. ▶ ...array를 이용해서 array의 배열의 요소를 개별적으로 Math.max에 대입한다. ▶ array.indexOf()를 이용해서 배열에서 max가 위치한 인덱스를 반환 받는다.

    최댓값 만들기(2) → 정렬 + 음수*음수+ 삼항연산자

    function solution(numbers) { numbers.sort((a,b)=> a-b); console.log(numbers) const answer1=numbers[numbers.length-2]*numbers[numbers.length-1] const answer2=numbers[0]*numbers[1] return answer1>answer2? answer1: answer2; } ▶ 오름차순으로 정렬한 다음에 마지막 배열요소와 마지막에서 두번째 배열요소를 곱해서 최대값을 구한다. ▶ 다만 오름차순으로 정렬한 경우 음수*음수로 인해서 좌측부분에서 우측부분보다 더 큰 최댓값(양수)이 나올 수 있다. ▶ 삼항 연산자를 이용해서 answer1과 answer2를 비교해서 큰 수를 return한다.