cdtst01

skoh·2023년 2월 10일
0

1. 일곱조각 피자 나눠먹기

//내꺼
function solution(n) {
    var answer = 7;

    answer = Math.ceil(n/answer)
    return answer;
}

변수로 담아 하고싶었다.
아래처럼 하면 코드는 줄어들겠지만,
좋은건가?

//내꺼
function solution(n) {
    var answer = 7;
    
    return Math.ceil(n/answer);
}

다른 사람이 푼 것 중에 제일 짧은 코드
피자조각만 변수에 담아서 활용하면 될듯

//01
const solution = (n) => Math.ceil(n / 7)

2. 문자열 뒤집기

//내꺼
function solution(my_string) {
    var answer = my_string.split('').reverse().join('');

    return answer;
}

최선인가?
spread operator를 가지고 한 사람도 있고,

//01
function solution(my_string) {
    var answer = [...my_string].reverse().join("");
    return answer;
}

const에 담아서 한 사람도 있다.
이 두개를 합쳐도 되나?

//02
const solution = (my_string) => my_string.split('').reverse().join('')
//합쳐봤다. 된다.
const solution = (my_string) => ([...my_string].reverse().join(''))

3. 배열요소 길이 구하기

//내꺼
function solution(strlist) {
    var answer = [];

    for(let i=0; i<strlist.length; i++) {
        let ElemLength = strlist[i].length;
        answer.push(ElemLength);
    }
    return answer;
}

너무 길게 쓴 것 같다. 하지만 짧게 쓰려면 어떤 로직을 사용해야하는지 감이 안온다.

//01
function solution(strlist) {
    return strlist.map((el) => el.length)
}

map... map...... 아......... 간단하네....

아래와 같이 쓴 사람도 있고.

//02
function solution(strlist) {
    var answer = [];
    strlist.forEach(el=>answer.push(el.length))
    return answer;
}
//03
function solution(strlist) {
    return strlist.reduce((a, b) => [...a, b.length], [])
}

4. 배열 뒤집기

//내꺼
const solution = (num_list) => num_list.reverse()

음 만족.

  1. 중복된 숫자 개수
//내꺼
function solution(array, n) {
    var answer = 0;
    for(let i=0; i<array.length; i++){
        if(array[i]==n) {
            answer++;
        }
    }
    return answer;
}

허엄... 너무 길다 너무 길어.. filter()를 이용해보려고 했는데, 문법을 모르겠어서ㅎ

//01
const solution=(array,n)=>array.filter(e=>e===n).length;

ㅇㅎㅇㅎ 이렇게 하는거구나

5. 짝수 홀수 개수

//내꺼
function solution(num_list) {
    let array = [];
    let evenarray = [];
    let oddarray = [];

    for(let i=0; i<num_list.length; i++) {
        if(num_list[i]%2==0){
            evenarray.push(num_list[i])
        } else {
            oddarray.push(num_list[i])
        }
    }
    array.push(evenarray.length)
    array.push(oddarray.length)

    return array
}

완전 지저분 ㅎㅎ
도저히 간단하게 못하겠어갖고 열심히 풀어썼다 ㅋㅋ 코딩 모르는 사람이 봐도 이해할 수 있을거같은데 이정도면 ㅎ..

//01
function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }
    return answer;
}

위에는 신기해서
아래는 기발해서

//02
function solution(num_list) {
  return [
    num_list.filter((num) => num % 2 === 0).length,
    num_list.filter((num) => num % 2 === 1).length,
  ];
}
//03
function solution(num_list) {
    var evenN = num_list.filter((el)=>{return el%2 == 0}).length

    return [evenN, num_list.length-evenN]
}

위에도 기발해서
아래는 내가 원하던 정답인듯

//04
function solution(num_list) {
    var answer = [num_list.filter(v => v%2 ==0).length, num_list.filter(v => v%2 != 0).length];
    return answer;
}

0개의 댓글