맨땅에 헤딩하기 4일차 (feat 돌대갈 ㅠ)

Parktaehoon·2022년 10월 12일
0

q1.

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

정수 배열의 원소 2개를 곱해서 최대값을 return 하는게 목적

function solution(numbers) {
    // numbers는 정수배열
    // numbers의 원소 중 두개 곱해서 만들 수 있는 최대값 
    const [first, second, ...rest] = numbers.sort((a, b) => b - a); // a - b는 내림차순
    console.log([first,second,...rest])
    return first * second;
}

numbers 가 정수 배열이라 스프레드 문법(...)을 통해 1번째 값과 2번째 값을 변수에 담아야된다.
따라서 [first, second, ...rest] 에 sort 메서드를 활용해서 오름차순으로 배열을 반환하고 first값과 second의 값을 곱해서 최대값을 도출한다.

입출력의 예제가 아래와 같아도 sort 메서드로 정렬이 가능해서 제일 높은 값인 first와 second를 뽑을 수 있다.

q2. 배열의 유사도

두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.

s1,s2 모두 배열이 담겨있음.
s1.filter로 모두 검사한 다음 includes로 s2랑 비교해서 length 출력

function solution(s1, s2) {
    return s1.filter((item)=>s2.includes(item)).length;
}

q3. 점의 위치 구하기

사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.

x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.

내 지저분한 풀이코드 ;

function solution(dot) {
    let [first, second] = dot
    console.log(first,second)
    if(first>0 && second>0){
        return 1
    } else if(first<0 && second>0){
        return 2
    } else if(first>0 && second<0){
        return 4
    } else if(first<0 && second<0){
        return 3
    }
}

split 메서드는 문자열을 배열로 만드는 것이다!!!

q4. 인덱스 바꾸기

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

못풀었따. 답안을 보고 분석을 시작했따

function solution(my_string, num1, num2) {
  const str = [...my_string]; // 원본 데이터에 손상을 주지 않는 새로운 배열 생성

//num1,num2가 숫자 인덱스이기때문에

  [str[num1], str[num2]] = [str[num2], str[num1]]; // 서로 안에 있는 값 교체 
  console.log("1", [str[num1]]);
  console.log("2", [str[num2]]);

  return console.log(str.join("")); // 배열 붙여줌과 동시에 문자열로 반환
}

solution("I love you", 3, 6);

q5. 삼각형 완성조건 (1)

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.

나의 코드

function solution(sides) {
   let sidesNum = sides.sort((a,b) => b - a)
   console.log(sidesNum);
    if(sidesNum[0] >= sidesNum[1]+sidesNum[2]){
        return 2
    } else {
        return 1
    }
}
profile
스스로 공부하는 내용 정리합니다.

0개의 댓글