코딩테스트 13일차
컨트롤 제트
숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
function solution(s) {
let numbers = s.split(" ");
let sum = 0;
let prevNumber = 0;
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] === "Z") {
sum -= prevNumber;
} else {
let num = parseInt(numbers[i]);
sum += num;
prevNumber = num;
}
}
return sum;
}
배열 원소의 길이
문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
function solution(strlist) {
var answer = [];
for (var i = 0; i < strlist.length; i++) {
answer.push(strlist[i].length);
}
return answer;
}
✅풀이
반복문을 사용하여 배열 strlist의 각 원소에 접근하고, length 속성을 이용하여 각 원소의 길이를 계산합니다. 계산된 길이를 answer 배열에 push() 메소드를 사용하여 추가합니다. 마지막으로 answer 배열을 반환합니다.
예를 들어, ["hello", "world", "example"]라는 strlist 배열이 주어진다면, 각 원소의 길이를 계산하여 [5, 5, 7]이라는 배열을 반환합니다.
중복된 문자 제거
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
var answer = '';
var charSet = new Set(); // 중복 문자를 확인하기 위한 Set
for (var i = 0; i < my_string.length; i++) {
var char = my_string[i];
// 현재 문자가 이미 Set에 존재하는 중복 문자인 경우 무시
if (charSet.has(char)) continue;
charSet.add(char); // Set에 문자 추가
answer += char; // 문자열에 추가
}
return answer;
}
✅풀이
문자열 my_string을 순회하면서 각 문자를 확인합니다. 현재 문자가 Set에 이미 존재하는 중복 문자인 경우 무시하고, 존재하지 않는 경우 Set에 추가하고 결과 문자열 answer에도 추가합니다.
삼각형의 완성조건 (1)
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
function solution(sides) {
sides.sort((a, b) => a - b); // 변의 길이를 오름차순으로 정렬
if (sides[2] < sides[0] + sides[1]) {
return 1; // 삼각형을 만들 수 있는 경우
} else {
return 2; // 삼각형을 만들 수 없는 경우
}
}
✅풀이
주어진 세 변의 길이를 오름차순으로 정렬한 후, 가장 긴 변의 길이 sides[2]가 나머지 두 변의 길이 sides[0]와 sides[1]의 합보다 작은지 확인합니다. 만약 작다면 삼각형을 만들 수 있는 경우이므로 1을 반환합니다. 그렇지 않다면 삼각형을 만들 수 없는 경우이므로 2를 반환합니다.