오늘의 알고리즘 👍
📝 1. 가운데 글자 가져오기
- 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.
- 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
▷ 입출력 예
solution("abcde")
solution("qwer")
▷ 내 풀이
function solution(s) {
var answer = "";
if (s.length % 2 === 1) {
answer = s[Math.ceil(s.length / 2 - 1)];
} else {
answer = s[s.length / 2 - 1] + s[s.length / 2];
}
return answer;
}
▷ 수업 풀이
function solution(s) {
const center = Math.floor(s.length / 2);
let answer = s[center];
if (s.length % 2 === 0) {
answer = s[center - 1] + answer;
}
return answer;
}
▷ 삼항연산자 사용 풀이
function solution(s) {
const center = Math.floor(s.length / 2);
let answer = s[center];
return s.length % 2 !== 0 ? s[center] : s.slice(center - 1, center + 1);
}
📝 2. 서울에서 김서방 찾기
- String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요.
- seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
▷ 입출력 예
solution(["Jane", "Kim"])
▷ 내 풀이
function solution(seoul) {
for (let i = 0; i < seoul.length; i++) {
if (seoul[i] === "Kim") {
return `김서방은 ${i}에 있다`;
}
}
}
▷ indexOf 메서드 사용 풀이
function solution(seoul) {
const x = seoul.indexOf("Kim");
return `김서방은 ${x}에 있다`;
}
📝 3. 문자열 다루기 기본
- 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
- 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
▷ 입출력 예
solution("a234")
solution("1234")
▷ 해결 못함 ❌
▷ 수업 풀이
function solution(s) {
let answer = true;
if (s.length !== 4 && s.length !== 6) {
answer = false;
}
for (let i = 0; i < s.length; i++) {
if (isNaN(s[i]) === true) {
answer = false;
}
}
return answer;
}
▷ filter메서드 사용 풀이
function solution(s) {
if (s.length !== 4 && s.length !== 6) {
return false;
}
const answer = s.split("").filter((num) => {
return !isNaN(num);
});
return s.length === answer.length;
}
📝 4. 약수의 합
- 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
▷ 입출력 예
solution(12)
solution(5)
▷ 내 풀이
function solution(n) {
let answer = 0;
for (let i = 0; i <= n; i++) {
if (n % i === 0) {
answer = answer + i;
}
}
return answer;
}
▷ newArray메서드 사용 풀이
function solution(n) {
return new Array(n).fill(1).reduce((acc, cur, i) => {
const num = cur + i;
return acc + (n % num === 0 ? num : 0);
}, 0);
}
출처: 프로그래머스
출처: 코드캠프