Lami
삶이 온통 사람의 길이니
Lami
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Elice (1)
      • 회고록 (1)
    • Git (0)
    • HTML ▪ CSS (4)
    • JavaScript (7)
      • BOJ (2)
      • Programmers (0)
      • Study Note (5)
    • TypeScript (0)
    • React (21)
      • Lecture (19)
      • Study Note (2)
    • Python (44)
      • CodeUp (38)
      • Programmers (0)
      • Study Note (6)
    • Modern Agile (80)
      • Tech Talk (7)
      • TIL (73)
    • 문제해결 (1)
    • 회고록 (5)
    • 도란도란 (2)

블로그 메뉴

  • Github

공지사항

  • 👋 안녕하세요!

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Lami

삶이 온통 사람의 길이니

Day 06 - 2021.12.13
Modern Agile/TIL

Day 06 - 2021.12.13

2021. 12. 13. 16:58

과제 05

https://github.com/wooahan-agile/coding-test-study-3term/pull/54

 

제일 작은 수 제거하기

https://programmers.co.kr/learn/courses/30/lessons/12935

function solution(arr) {
  const answer = [];
  arr.forEach((el) => {
    if (el !== Math.min(...arr)) {
      answer.push(el);
    }
  });
  if (arr.length === 1) {
    answer.push(-1);
  }
  return answer;
}

뭔가 더 효율적인 방법이 있을 것 같다🤔

 

리뷰

  • filter 사용하면 훨씬 효율적임
  • for문을 돌려서 찾기보다 filter로 조건에 해당하는 것들만 반환
// 기존 코드
function solution(arr) {
  const answer = [];
  arr.forEach((el) => {
    if (el !== Math.min(...arr)) {
      answer.push(el);
    }
  });
  if (arr.length === 1) {
    answer.push(-1);
  }
  return answer;
}

// 멘토님 수정 코드
function solution(arr) {
   return (arr.length === 1) ? [-1] : arr.filter((number) => {return number !== Math.min(...arr)})
}

 

음양 더하기 (for를 사용한 것과 reduce를 사용해서도 풀어보기)

https://programmers.co.kr/learn/courses/30/lessons/76501

// for문
function solution(absolutes, signs) {
  let answer = 0;
  for (let num in absolutes) {
    if (signs[num] === false) {
      absolutes[num] *= -1;
    }
    answer += absolutes[num];
  }
  return answer;
}

// reduce
function solution(absolutes, signs) {
    let answer = 0;
    answer = absolutes.reduce((total, nowValue, idx) => {
        if (signs[idx] === false) {nowValue *= -1}
        return total + nowValue;
    }, 0)
    return answer;
}

 

리뷰

  • if문 조건식 간결하게 표현
// 기존 코드
if (signs[num] === false) {

// 멘토님 수정 코드
if (!signs[num]) {

 

이상한 문자 만들기 (대소문자로 변환해주는 메서드 사용하여 풀기)

https://programmers.co.kr/learn/courses/30/lessons/12930

function solution(s) {
  let answer = '';
  const words = s.split(' ');

  for (let word = 0; word < words.length; word++) {
    for (let alphabet = 0; alphabet < words[word].length; alphabet++) {
      answer =
        alphabet % 2 === 0
          ? answer + words[word][alphabet].toUpperCase()
          : answer + words[word][alphabet].toLowerCase();
    }
    answer += ' ';
  }
  return answer.slice(0, -1);
}

 

리뷰


TIL

  • reduce
    • https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d
    배열.reduce((누적값, 현잿값, 인덱스, 요소) ⇒ { return 결과 }, 초깃값);
    
    • reduce 초깃값을 적지 않으면 첫번째 인덱스값이 초깃값이 되므로 결과가 달라진다.
  • 문자열의 마지막 글자 제거
    • https://gent.tistory.com/415
    slice(어디서부터, 어디 전까지);
    

Lesson Learned

잘한 점

  • for in과 for of를 구분해서 쓸 수 있게 되었다. 진짜 계속 찾으면서 여러번 보면 눈에 익고 용도에 따라 사용할 수 있게 되는 것 같다. 문제를 풀다 보면 많은 메소드들을 접하게 돼서 조바심도 나고 걱정이 들었지만 그 불편한 마음을 조금 내려놓아도 될 것 같다는 생각이 들었다😄

아쉬운 점

  • 문제를 풀 때 이 코드가 효율적이지 않다는 것을 느낀다. 분명 너무 길다. 하지만 어떻게 해야 효율적으로 쓸 수 있는지 아직 잘 모른다,, 코드리뷰 받은 것을 토대로 써봤던 메소드들을 잘 쓸 수 있도록 해야지.

배운 점

'Modern Agile > TIL' 카테고리의 다른 글

Day 08 - 2021.12.15  (0) 2021.12.16
Day 07 - 2021.12.14  (0) 2021.12.15
Day 05 - 2021.12.10  (0) 2021.12.10
Day 04 Tech Talk Day🎤 - 2021.12.09  (2) 2021.12.09
Day 03 - 2021.12.08  (0) 2021.12.08
    'Modern Agile/TIL' 카테고리의 다른 글
    • Day 08 - 2021.12.15
    • Day 07 - 2021.12.14
    • Day 05 - 2021.12.10
    • Day 04 Tech Talk Day🎤 - 2021.12.09
    Lami
    Lami
    성장하는 즐거움을 알아가는 중입니다🌱

    티스토리툴바