오늘의 알고리즘 👍
📝 1. 음양 더하기
- 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 boolean 배열 signs가 매개변수로 주어집니다.
- 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
▷ 입출력 예
solution([4,7,12], [true,false,true])
solution([1,2,3], [false,false,true])
▷ 내 풀이
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
if (signs[i]) {
answer += absolutes[i];
} else {
answer -= absolutes[i];
}
}
return answer;
}
▷ 삼항연산자 사용 풀이
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
answer += signs[i] ? absolutes[i] : -absolutes[i];
}
return answer;
}
▷ reduce 매서드 사용 풀이
function solution(absolutes, signs) {
const answer = absolutes.reduce((acc, cur, i) => {
console.log(acc, cur, i);
return (
acc + (signs[i]
? cur
: -cur)
);
}, 0);
return answer;
}
📝 2. JadenCase 문자열 만들기
- JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다.
- 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
- 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
▷ 입출력 예
solution("3people unFollowed me")
solution("for the last week")
▷ 내 풀이
function solution(s) {
let answer = "";
str = s.toLowerCase();
answer += str[0].toUpperCase();
for (let i = 1; i < s.length; i++) {
if (str[i - 1] === " ") {
answer += str[i].toUpperCase();
} else {
answer += str[i];
}
}
return answer;
}
▷ 수업 풀이
function solution(s) {
let answer = '';
s = s.toLowerCase();
let idx = 0;
for (let i = 0; i < s.length; i++) {
let word = s[i];
if (s[i] === ' ') {
idx = 0;
} else {
if (idx === 0) {
word = s[i].toUpperCase();
}
idx++;
}
answer += word;
}
return answer;
}
▷ map 매서드 사용 풀이
function solution(s) {
const answer = s
.toLowerCase()
.split(' ')
.map((word) => {
return word === ''
? word
:
word[0].toUpperCase() + word.substr(1);
});
return answer.join(' ');
}
출처: 프로그래머스
출처: 코드캠프