2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Lv0 JS 프로그래머스 #8 - 삼각형의 완성조건(1), 문자열안에 문자열, 배열의 유사도

2023. 8. 10. 15:32ㆍ프로그래머스 JS 코딩테스트
반응형

25. 삼각형의 완성조건 (1)

 

문제 설명

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

제한사항

  • sides의 원소는 자연수입니다. 
  • sides의 길이는 3입니다. 
  • 1 ≤ sides의 원소 ≤ 1,000

입출력 예시

  • 가장 큰 변인 3이 나머지 두 변의 합 3과 같으므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.
  • 가장 큰 변인 6이 나머지 두 변의 합 5보다 크므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.
  • 가장 큰 변인 222가 나머지 두 변의 합 271보다 작으므로 삼각형을 완성할 수 있습니다. 따라서 1을 return합니다.

풀이

const solution = sides => {
    // max = 배열에서 가장 큰 수 
    const max = Math.max(...sides);
    // arr 배열 = 배열에서 가장 큰 수를 제외한 배열
    const arr = sides.filter(x => x !== max);
    // 배열 내 가장 큰 수가 두개 이상일 때
    if(arr.length === 1) arr.push(max);
    // 배열 내 수가 모두 같을 때
    if(arr.length === 0) {
        arr.push(max);
        arr.push(max);
    };
    // 가장 큰 수 - 배열 내 모든 요소의 합 < 0 => 두 변의 길이의 합이 한 변보다 길다.
    if(max - arr.reduce((acc,val) => acc + val, 0) < 0 ) return 1;
    else return 2;
}

// sort, 오름차순을 이용한 로직
const solution = sides => {
    sides = sides.sort((a,b) => a-b)
    return sides[0]+sides[1] > sides[2] ? 1 : 2;
}

 

26. 문자열안에 문자열

 

문제 설명

  • 문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 
    solution 함수를 완성해주세요.

제한사항

  • 1 ≤ str1의 길이 ≤ 100
  • 1 ≤ str2의 길이 ≤ 100
  • 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.

입출력 예시

  • ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.
  • "ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.
  • "AbcAbcA" str1에 str2가 없으므로 2를 return합니다.

풀이

const solution = (str1, str2) => {
    // includes(배열내 찾을 요소, 시작 인덱스)) 
    if(str1.includes(str2)) return 1
    else return 2
}

 

27. 배열의 유사도

 

문제 설명

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

제한사항

  • 1 ≤ s1, s2의 길이 ≤ 100
  • 1 ≤ s1, s2의 원소의 길이 ≤ 10
  • s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
  • s1과 s2는 각각 중복된 원소를 갖지 않습니다.

입출력 예시

  • "b"와 "c"가 같으므로 2를 return합니다. 
  • 같은 원소가 없으므로 0을 return합니다.

풀이

const solution = (s1, s2) => {
    // s1 배열의 요소 x가 s2에 포함된 개수
    return s1.filter(x => s2.includes(x)).length
}

 

  • 정답률 높은 순부터 풀이
  • 매일 3 문항 풀이
반응형