일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 퍼블리셔
- rn webview page loading
- 트윈맥스 기초
- styled component 작동 안될때
- slick slider 간격
- gsap
- react native safeArea
- JS
- reactnative 웹뷰 페이지 로딩
- React-Native IOS
- React Native navigation
- RN navitate push
- input 숫자입력
- 프론트앤드
- 리액트
- 웹뷰 페이지 로딩
- React-Native 공부
- scrollIntoView scrollTo
- SafeArea 커스텀
- 타입스크립트
- gsap 기초
- React Native SafeArea Custom
- safari wiondow.open
- styled component is not working
- react이론
- styled component
- 임고미
- react
- styled component 작동안함
- js 특정 위치로 이동
Archives
- Today
- Total
개발공부 임고미
[프로그래머스] 연습문제 - 푸드 파이트 대회 본문
728x90
300x250
프로그래머스 링크
알고리즘 공부를 시작하며..
어떤식으로 공부해보면 좋을지, 어떤식으로 정리할지 계획을 세워봤다.
1. 목표는 내가 쓰고자 하는 로직을 글로 먼저 적어본뒤 코드로 그 플로우 그대로를 따라가는것!
2. 30분이상 고민하지 말고, 정답 찾아본 뒤 스스로 다시 풀어볼것 (다음날 한번 더!)
3. 성공했을시, 다른사람들의 풀이를 보고 배우고싶은 코드를 1개 이상 가져와 분석해보기!
푸드 파이터 대회
// 맨앞 물을 제외한 음식만 있는 배열을 만든다.
// 각 음식이 홀수이면 -1 짝수면 그대로 둔다.
// 남은수의 1/2만큼 각 숫자를 리핏해준다.
// 물과 리핏해준 함수를 뒤집어서(상대편도 적은 칼로리부터 먹으니까) 붙여준다.
// 완성!
코드
function solution(food) {
// 맨앞 물을 제외한 음식만 있는 배열을 만든다.
const foodList = food.filter((f, i) => i !== 0);
// 각 음식이 홀수이면 -1 짝수면 그대로 둔다.
const makeEvenFood = foodList.map((f) => f%2 ? f-1 : f);
// 남은수의 1/2만큼 각 숫자를 리핏해준다.
const availableFood = makeEvenFood.map((f, i) => String(i+1).repeat(f/2));
// 물과 리핏해준 함수를 뒤집어서(상대편도 적은 칼로리부터 먹으니까) 붙여준다.
const result = availableFood.concat([0]).concat(availableFood.reverse())
// 완성!
return result.join('');
}
코드 줄여보기
1. 음식만 있는 배열 생성 x
2. result영역 함수 안스고 spread문법 사용해보기
function solution(food) {
const makeEvenFood = food.map((f, i) => i > 0 && f%2 ? f-1 : f);
const availableFood = makeEvenFood.map((f, i) => String(i).repeat(f/2));
const result = [...availableFood,0,...availableFood.reverse()];
return result.join('');
}
makeEvenFood와 availableFood 합쳐보기는.. 이식에서는 좀 우겨넣기같다.. 다른 코드들을 한번 살펴보기로 결심!
728x90
300x250
Comments