본문 바로가기
프로그래밍

wecode +22 (9/8)

by Youngbin Kwon 2020. 9. 9.

배운 것/개발한 것/정리한 것

- 오전 : 코드카타

 

문제

더보기

숫자로 이루어진 배열인 nums를 인자로 전달합니다.

숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.

내 코드

function moreThanHalf(nums) {
  const count = {};
  const arrLen = nums.length;
  
  nums.forEach((el) => { count[el] = (count[el]) ? ++count[el] : 1});
  const mostUsedKey = Object.keys(count).reduce((pre, cur) => count[pre] > count[cur] ? pre : cur );
  
  return parseInt(mostUsedKey);
}

 

=> 1) 주어진 배열을 돌며 {숫자 : 숫자가 사용된 횟수} 형태의 객체를 생성해준다. (숫자가 없을 때는 1 count를 새로 생성하고, 있을 때에는 기존 count에 더해준다) 2) 객체의 keys를 배열로 추출한다.(Object.keys 사용) 3) reduce 메소드를 사용하여 앞 숫자와 뒤 숫자의 사용된 횟수를 비교하고, 더 많이 사용된 key를 리턴해준다. 4) 리턴된 key를 정수화시켜준다. 

 

- 오후

1. 세션 (Mockdata의 활용)

2. 코드 리팩토링

 - westagram main 컴포넌트 destructuring 완료 (+scss도 destructuring 완료)

 - props통한 피드 댓글 불러오기 기능 완료 및 이에 따른 댓글 삭제 로직 수정

 - mockData 통한 피드, 댓글 등에 불러오기 및 보여주기 완료

3. TIL 블로깅 완료 (다른 세션은 하나도 못함)

내일 할 일

1. 오전 : 코드카타 + 12기 프로젝트 아이디어 포스팅

2. 세션

 - 2시 : stack & queue

 - 4시 : 프로젝트 아이디어

3. 오후

 - 블로깅 : 인증/인가, JS fetch, react component lifecycle, javascript reduce/map 다시, 자료구조(stack & queue)

회고

제출한 결과물 코드가 맘에 들지 않았고, 좀 더 컴포넌트별로 분해하라는 피드백을 받아 구조를 완전히 바꿨다. 삽질의 삽질...을 하다보니 확실히 props와 state는 이전보다는 사용하는 방법을 터득한 것 같다. 오늘의 삽질을 통해 배운 점은 : 

 

1) 파일 하나 당 컴포넌트 하나의 구조로 짜야 가독성과 유지보수에 좋다

2) props로 넘겨주는 데이터와 받는 컴포넌트의 state 변수명 구분을 잘하자.

3) 그때그때 코드만 치지 말고 짜기 전에 전체 구조를 생각하고 짜는 것이 나중의 정신건강에 좋다 (유지보수가 쉽다)

 

기존의 코드에 계속해서 수정을 하다보니 전달해주는 데이터가 꼬이기도 하고, 받아온 데이터를 state에서 사용하는 변수명을 잘못 적거나 하는 사소한 오류가 멘붕으로 이어졌다. 전체 문서 구조를 항상 생각해보면서 짜는 연습을 많이 해야할 것 같다.

'프로그래밍' 카테고리의 다른 글

wecode +23 (9/9)  (0) 2020.09.10
JS fetch()  (0) 2020.09.09
wecode +21 (9/7)  (0) 2020.09.08
React 6 - Props & 이벤트  (0) 2020.09.07
wecode +20 (9/6)  (0) 2020.09.07

댓글