2024.01.16 TIL - 알고리즘(reduce), js 2회독(데이터 할당 과정, 실행 컨텍스트, This), 팀프로젝트 KPT 회고

Innes·2024년 1월 16일
0

TIL(Today I Learned)

목록 보기
41/147
post-thumbnail

📘 오늘의 공부


📝 알고리즘

  • 문제 : 하샤드 수

    <문제 설명>
    양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
    <제한 조건>
    x는 1 이상, 10000 이하인 정수입니다.

  • 내 풀이 (성공!)

function solution(x) {
    // 1. x를 split으로 쪼개기
    // 2. 쪼갠 요소들을 nubmer로 바꿔서 더하기(number로 바꾼 값들 reduce함수로)
    // 3. x가 2번의 값으로 나누어 떨어지는지 체크
    // 4. t/f return
    
    const x_arr = String(x).split('');
    // console.log(x_arr);
    
    for (let i = 0; i < x_arr.length; i++) {
        x_arr[i] = Number(x_arr[i]);
    } const add = x_arr.reduce((arr, cur) => arr + cur);
    // console.log(add);
    
    return (x % add) === 0
}
  • 깨달은 것
    • 로직을 머릿속으로만 생각해서 처음부터 끝까지 짠 다음에 문제를 해결하는 것이 아니라, 로직을 짤 때부터 아예 글로 직접 써보고, 로직 순서대로 하나씩 코드를 작성하고 확인해보고, 작성하고 확인해보는 과정을 거치는게 훨씬 논리적으로 접근하기 쉽고 문제를 그때그때 해결하기 쉽다는걸 알았다.
      알고리즘 특강때 들었던게 조금씩 이해가 되고 있는 것 같다. 로직을 직접 글로 써보라고 한 것, 처음부터 끝까지 한번에 쓰려고 하지 말고 조금씩 조금씩 써가면서 발전시키라고 했던 것들이 이런 말이었구나 싶다.

🖥️ js 문법 강의 2회독

아무리 강의를 들어도 개념이 잘 잡히지 않아 결국 손으로 쓰면서 듣기 시작했다. 손으로 적으면서 강의를 들으니 개념이 더 잘 들어오는걸로 보아 나도 어쩔 수 없는 옛날 사람이 되어버린걸지도...😂 손글씨로 정리한 오늘의 강의 수강내용을 올려본다.

  • 3주차 강의 2회독 (주요 내용 - 데이터 할당 과정, 실행 컨텍스트, This)
  • 추가 공부가 필요한 내용 : this, this binding(call, apply, bind)


🍿 팀프로젝트 회고(TMDB 영화검색 사이트)

💡 팀프로젝트의 자세한 내용이 포함된 회고는 아래 링크로!
팀프로젝트 - 'TMDB를 활용한 영화 검색사이트' 회고

KPT 회고

1. Keep (유지하고 싶은 좋았던 점)

  • 팀원들 간 소통이 원활했던 점이 가장 좋았습니다. 예를 들면, 현재 진행 상황을 자주 공유해서 최대한 conflict가 안나도록 노력했고, 개인적으로 해결이 어려운 부분은 팀의 이슈로 공유하여 다 함께 해결하고자 했습니다. 각자 맡은 부분의 코드를 함께 리뷰하며 다른 팀원이 맡은 부분의 로직을 이해하는 시간도 가졌습니다. 개발자가 가져야 할 자세 중 중요한 부분이 '소통'과 '공유'라고 많이 들었는데, 원활한 협업을 위해 왜 소통과 공유가 중요한지 몸소 깨달을 수 있는 시간이었습니다.

2. Trouble (아쉬웠던 점)

  • 선택 사항으로 구현하고자 했던 기능 중 구현해내지 못한 부분들이 있어 아쉬움으로 남습니다. 카드를 정렬할 수 있는 종류를 좀 더 늘리고 싶었고(이름순, 장르별 등), 메인페이지에서 페이지네이션도 구현하고 싶었는데 매번 아쉽게 실패해서 결국 완성하지 못해 큰 아쉬움으로 남습니다.

3. Try (Problem 해결 방법, 앞으로의 다짐 등)

  • 구현해내지 못했던 기능들은 아직 javascript 문법 지식 부족으로 인한 것으로 생각되어 앞으로 기초를 더 탄탄히 하고 다른사람들의 코드도 리뷰해가며 열심히 공부하는 시간을 보내면 자연스레 해결될 것이라 생각합니다.
profile
꾸준히 성장하는 우상향 개발자

0개의 댓글