프로그래머스: 코딩 기초 트레이닝 javascript 61~70문제

문자열 섞기

https://school.programmers.co.kr/learn/courses/30/lessons/181942

 

function solution(str1, str2) {
    let answer = [];
    for (let i = 0; i < str1.length; i++) {
        answer.push([...str1[i]]);
        answer.push([...str2[i]]);
    }
    return answer.join("");
}

 

function solution(str1, str2) {
    return [...str1].map((x, idx)=> x+str2[idx]).join("");
}

다른 사람 풀이.. 엄청 간단하다. map을 이용해서 할 수 있었다.

 

 


x사이의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/181867

 

function solution(myString) {
    let answer = [];
    myString = myString.split('x').forEach(v => answer.push(v.length));
    return answer;
}

 

 


ad제거하기

https://school.programmers.co.kr/learn/courses/30/lessons/181870

 

function solution(strArr) {
    return strArr.filter(v => !v.includes("ad"));
}

 

 


   

9로 나눈 나머지

https://school.programmers.co.kr/learn/courses/30/lessons/181914

function solution(number) {
    return [...number].reduce((a,c) => +a + +c) % 9;
}

 

 


5

가까운 1찾기

https://school.programmers.co.kr/learn/courses/30/lessons/181898

function solution(arr, idx) {
    arr = arr.slice(idx);
    return arr.indexOf(1) === -1 ? -1 : arr.indexOf(1) + idx;
}

 

function solution(arr, idx) {
  return arr.findIndex((v, i) => idx <= i && v === 1);
}

다른 사람 풀이 findIndex를 이용

 

 


수 조작하기 2

https://school.programmers.co.kr/learn/courses/30/lessons/181925

function solution(numLog) {
    let num = 0;
    let answer = ''
    for (let i of numLog) {
        if (num - i === -1) {
            answer += 'w';
        } else if (num - i === 1) {
            answer += 's';
        } else if (num - i === -10) {
            answer += 'd';
        } else if (num - i === 10) {
            answer += 'a';
        }
        num = i;
    }
    return answer;

 

 


문자열 잘라서 저장하기

 

https://school.programmers.co.kr/learn/courses/30/lessons/181866

function solution(myString) {
    return myString.split('x').filter(v => v).sort();
}

 

 


 

주사위 게임 2

https://school.programmers.co.kr/learn/courses/30/lessons/181930

function solution(a, b, c) {
    const sum = a+b+c
    return a !== b && b !== c && a !== c ? sum 
    : a === b && b === c && a === c ? sum * ((a**2)*3) * ((a**3)*3) 
    : sum * (a**2+b**2+c**2);
}

 

 


 

특별한 이차원 배열 1

function solution(n) {
    var answer = [];
    for (let i = 0; i < n; i++) {
        let lst = []
        answer.push(lst)
        for (let j = 0; j < n; j++) {
            j === i ? lst.push(1) : lst.push(0)
        }
    }
    return answer;
}

 

function solution(n) {
  const answer = Array.from(Array(n), () => Array(n).fill(0));

  for (let i = 0; i < n; i++) {
    answer[i][i] = 1;
  }

  return answer;
}

다른 사람 풀이..

 


특별한 이차원 배열 2

https://school.programmers.co.kr/learn/courses/30/lessons/181831

function solution(arr) {
    let ans = 1;
    for (let i = 0; i < arr[0].length; i++) {
        for (let j = 0; j < arr[0].length; j++) {
            if (ans === 0) {
                break
            } else if (arr[i][j] !== arr[j][i]) {
                ans = 0
            }
        }
    } 
    return ans;
}
function solution(arr) {
    return arr.every((r, i) => r.every((_, j) => arr[i][j] === arr[j][i])) ? 1 : 0;
}
comment