반응형
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 문항 풀이
반응형
'프로그래머스 JS 코딩테스트' 카테고리의 다른 글
Lv0 JS 프로그래머스 #10 - 옷가게 할인 받기, 문자 반복 출력하기, 중복된 숫자 개수 (13) | 2023.08.14 |
---|---|
Lv0 JS 프로그래머스 #9 - 자릿수 더하기, 머쓱이보다 키 큰 사람, 순서쌍의 개수 (7) | 2023.08.11 |
Lv0 JS 프로그래머스 #7 - 배열 두 배 만들기, 문자열 뒤집기, 특정 문자 제거하기 (11) | 2023.08.09 |
Lv0 JS 프로그래머스 #6 -배열 자르기, 최댓값 만들기, 피자 나눠 먹기(3) (3) | 2023.08.08 |
Lv0 JS 프로그래머스 #5 - 점의 위치 구하기, 짝수 홀수 개수, 배열 뒤집기 (1) | 2023.08.07 |