🌟 = 내가 생각한 난이도있는 풀이
1. 두 정수 사이의 합 1레벨
2. 콜라츠 추측 1레벨
3. 서울에서 김서방 찾기 1레벨
4. 나누어 떨어지는 숫자 배열 1레벨
5. 음양 더하기 1레벨
function solution(a, b) {
var answer = 0;
if (a >= b) { // 예시 -> (5, 3)
for (let i = b; i <= a; i++) {
answer += i; // 3 + 4 + 5
}
} else {
for (let j = a; j <= b; j++) { // -> if(a <= b) // 예시 -> (3, 5)
answer += j; // 3 + 4 + 5
}
}
return answer;
}
function solution(num) {
let answer = 0;
if(num === 1) return 0;
while (num !== 1) {
if (num % 2 == 0){
num /= 2;
} else {
num = (num * 3) + 1;
}
answer += 1;
}
if (answer >= 500) {
return -1;
}
return answer;
}
if(num === 1) return 0;
값을 제일 마지막에 넣었었는데 실행속도가 10초가 넘는다고 fail이 나서 맨위에 명시하고 시작했더니, 성공했다... 그렇다고해서 이게 맞는걸까? ㅠㅠ...하핳ㅎfunction solution(num) {
var answer = 0;
if(num === 1) return 0;
while(num !=1 && answer !=500){
num%2==0 ? num = num/2 : num = num*3 +1;
answer+=1;
}
return num === 1 ? answer : -1;
}
return num === 1 ? answer : -1;
이 부분이 이해가 어려웠는데, 결국 반복문이 모두 끝난 뒤 answer값이 1일경우에 카운팅되는거고, 아닌경우엔 -1이되는거니까 !=500의 조건을 벗어난 값들은 -1을 출력하게된다는... 의미인데 아 어렵네 ㅠㅠfunction solution(seoul) {
var answer = '';
for(let i = 0; i < seoul.length; i++) {
if (seoul[i] === "Kim")
answer = "김서방은 " + seoul.indexOf('Kim', 0) +"에 있다" // 그냥 i만 써도된다...허무
// `` 을 생각해보자 ${i} // indexOf()
}
return answer;
}
seoul.indexOf('Kim', 0)
에서 0값은 인덱스[0]부터 찾는다는 의미다.seoul.indexOf('Kim', 0)
말고 그냥 i
만 써도 답은 도출된다 ㅎㅎ.. 백틱으로 ${i}값을 문자와 써도 이뻤을텐데 ㅎㅎ..function solution(arr, divisor) { // divisor = 제수, 나누는 값
var answer = [];
for (let i = 0; i < arr.length; i++){
if(arr[i] % divisor === 0)
answer.push(arr[i]);
} if (answer.length === 0){ // -> 나누어 떨어지는 요소가 없으면 = return 배열에 요소가 없으면 !
answer.push(-1);
}
answer.sort((a, b) => a - b);
return answer;
}
.push()
로 배열값을 넣어줬고,answer.length === 0
이라는 의미는 나눈값이 0이되는게 없으면! 이라는 뜻으로 -1값을 넣었다.function solution(absolutes, signs) {
var answer = 0;
// 2. 두 배열을 비교해 가면서 값을 더하거나 빼줄 것
// 2-1. absolutes, signs 두 배열은 크기가 같음
for (var i = 0; i < absolutes.length; i++){
// 부호 (+, -) 에 따른 처리
if(signs[i] === true){ // 값이 true인 경우 (+)
answer += absolutes[i];
}else if (signs[i] === false) {
answer += (-1) * absolutes[i]; // 값이 false인 경우 (-)
}
}
return answer;
}
answer += (-1) * absolutes[i]
라고answer -= absolutes[i]
로도 같은 결과가 나왔다.. 오잉..answer값이 0으로 초기값이 잡히기 때문인가보다..?