Algorithm(중하)

Jeong Yeongmin·2022년 9월 24일
0

Algorithm

목록 보기
4/9

function solution(x, n) {
  var answer = [];
  for (let i = 2; i<=n; i++){  
    answer.push(x*i);
  }
  
  return answer;
}
	
  // alternative
  return Array(n).fill(x).map((v,i) => (i+1)*v)

feedback: 내 코드는 근본 중의 근본. Array(n)을 미리 만들어 x로 채운 후 안의 값을 map을 이용해 바꾸는 게 신박하다.

function solution(price, money, count) {
  	var answer = 0;

  	let accum_array = Array(count).fill(price).map((p,i) =>
    	(i+1)*p);

 	let accum = accum_array.reduce((a,b) => {return a + b;})
	accum > money? answer = accum - money : answer=0;

  	return answer;
    
// alternative
function solution(price, money, count){
  const tmp = price * count * (count+1)/2 - money;
  return tmp > 0? tmp: 0;
}
  
  }

feedback: Algorithm(하)에서 새로 배운 개념들을 적용했다는 것에서 유의미했던 문제(reduce. fill. 화살표 함수, map) 등차수열의 합을 이용하면 코드가 훨씬 깔끔해진다. 크기게 일정하게 증가하는 수들의 합은 앞으로 등차수열로 생각을 해봐도 좋을 것 같다.

function solution(arr, divisor) {

  let answer = [];
  answer = arr.filter(a => a%divisor == 0);
  //console.log(typeof(answer));
  // 초기 코드: answer = answer ? answer.sort((a,b) => a-b): [-1]: return answer;
  answer = answer.length ? answer.sort((a,b) => a-b): [-1];
  return answer;
}

feedback: 한 가지 짚어보면 좋을 문제라 쓰게 되었다. 계속 3번째 케이스에서 [-1]이 뜨지 않고 []가 결과값으로 나와서 한 30분 대체 왜...? 라는 물음을 가졌던 것 같다. typeof(answer)을 치면 object라고 뜨는데 object는 Js에서 항상 true임으로 [-1]이 output으로 나오지 않는 것이었다. array에서 주의해야 할 부분이다.answer.length를 사용해서 문제를 해결했다.

function solution(s){
  var answer=true;

  let countp = 0;
  let county = 0;
  for (let i=0; i<s.length; i++){
    if (s[i]=='p'||s[i]=='P') countp++;
    console.log(countp);
    if (s[i]=='y'||s[i]=='Y') county++;
    console.log(county);
  }
  return answer = countp==county ? true : false;

}

// alternative
function solution(s){
  return s.toUpperCase().split('P').length === s.toUpperCase().split('Y').length;
}

feedback: P의 개수와 Y의 개수가 동일하다면 split을 할 때 동일한 길이 만큼의 문자열이 남게 될테니깐 이를 비교하면 10줄 가량의 코드가 1줄로 줄어들게 된다. 처음 볼 때 아..이런 방법이를 외쳤던 풀이법. 나는 계속 string이나 array를 볼 때 for loop을 돌려서 각각의 index에 접근하려고 하는 습관이 있는데 전체적으로 (예를 들면 길이를 비교한다던가) 문제를 크게 보는 습관이 필요할 듯하다.

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN