[알고리즘] 프로그래머스_코딩테스트 입문_2023.3.2

신재욱·2023년 3월 2일
0
post-thumbnail

0️⃣ 암호 해독


  • 풀이
function solution(cipher, code) {
    var answer = '';
    var a = cipher.split('');
    for(let i=code-1; i<a.length; i+=code){
        answer += a[i]
    }
    return answer;
}


1. 반복문의 최초식을 시작하는 지점으로 바꾸고
2. 증감문을 증가하는 매개변수로 설정한다.

0️⃣ 문자열 정렬하기 (1)


  • 풀이
function solution(my_string) {
    let a = my_string.replace(/[^0-9]/g, '');
    const arr = a.split('').map(Number);
    arr.sort();

    return arr;
}


1. 주어진 문자열을 정규식을 이용해 숫자 빼고 모두 삭제
2. 숫자열을 split을 이용해 나누면 // ["2","2","4","8"] 이런식으로 나온다.
3. 그렇게 나온 배열을 map(Number)을 이용해 [2,2,4,8]로 만들고
4. sort를 사용해 오름차순으로 정렬한다.

📌 map(Number)

메소드는 배열 내의 모든 요소 각각에 대하여 Number을 적용해 주어진 함수를 호출한 결과를 모아 새로운 배열을 반한다.

0️⃣ n의 배수 고르기


  • 풀이
function solution(n, numlist) {
    var answer = [];
    for(let i =0; i<numlist.length; i++){
        if(numlist[i]%n===0){
            answer.push(numlist[i])
        }
    }
    return answer;
}


1. numlist의 길이 만큼 반복문
2. 배수는 배수값 나머지가 0인 값
3. 값을 배열에 삽입
  • 다른 풀이
function solution(n, numlist) {
    return numlist.filter(num => num % n === 0);
}

0️⃣ 주사위의 개수


  • 풀이
function solution(box, n) {
    var answer = 0;
    answer = Math.floor(box[0]/n)*Math.floor(box[1]/n)*Math.floor(box[2]/n)
    return answer;
}

0️⃣ 최댓값 만들기 (2)


  • 풀이
function solution(numbers) {
    var answer = 0;
    var arr = numbers.sort((a,b)=>a-b);
       
    if((arr[arr.length - 1]*arr[arr.length - 2])>(arr[0]*arr[1])){
        answer = arr[arr.length - 1]*arr[arr.length - 2]
    }else if((arr[arr.length - 1]*arr[arr.length - 2])<(arr[0]*arr[1])){
        answer = arr[0]*arr[1]
    }else if((arr[arr.length - 1]*arr[arr.length - 2])===(arr[0]*arr[1])){
        answer = arr[0]*arr[1]
    }
    return answer;
}


1. 배열을 오름차순으로 정렬
2. 마이너스*마이너스를 고려
3. 조건문 사용 배열 맨앞 두개 곱과 맨뒤 두개 곱 비교
4. 둘중 큰 수 적는다.

📌 arr[arr.length - 1]

배열 맨 뒤에 값을 구하는 방법

📌 sort((a,b)=>a-b);

profile
1년차 프론트엔드 개발자

0개의 댓글

관련 채용 정보