[코테_입문] 문제풀이

young0_0·2023년 8월 31일
0

conding-test

목록 보기
1/2

프로그래밍적 사고를 하기 위해 0단계부터 풀고 다른사람의 풀이를 공부합니다.

문제 1.

https://school.programmers.co.kr/learn/courses/30/lessons/120831

내가 푼 풀이


function solution(n){
	let answer = 0;
  	// 1~n 만큼 반복하며 
  	for(let i = 1; i <= n; i++){
      	// i를 2로 나눴을 때 0 (짝수) 일경우 한개씩 더한다.
    	if(i % 2 ===0){
        	answer +=i
        }
    }
}	

다른사람 풀이

n만큼 배열로 만들어서 짝수를찾아서 더해준다.


function solution (n) {
	return Array(n).fill().map((_,i) => i+1).filter(v=>v%2 === 0).reduce((a,c)=>a+c,0)
}
  • Array(n).fill().map((,i) => i+1)
    - n개 만큼 배열을 만들고 그 배열을 map으로 돌려 i~n번만큼 배열에 넣는다.(
    는 value 값 활용하지 않을 것이므로 사용)
  • fillter( v => v % 2 === 0)
    - 배열의 value 값에서 2의 짝수만 필터로 구한다.
  • reduce((a,c)=> a+c)
    - reduce로 누산값 과 현재값을 더한다.
    • 빈배열일 경우 초기값을 넣지 않으면 에러가 난다.

문제 2.

https://school.programmers.co.kr/learn/courses/30/lessons/120817

내풀이

function solution(numbers) {
    var answer = 0;
    numbers.map((val)=> {
        answer +=val/numbers.length
    })
    return answer;
}
  • map으로 전체순회해서 value값을 각각 더하고 numbers의 갯수 를 나눈다.

다른 문제 풀이

function solution(numbers) {    
    return numbers.reduce((a,c) => a+c,0) / numbers.length
}
  • reduce 를 통해 누산값 + 초기값 더하고 numbers 갯수로 나눈다.

문제 3.

https://school.programmers.co.kr/learn/courses/30/lessons/120585

문제풀이

function solution(array, height) {
    var answer = 0;
    array.map(n => {
        if(n > height){
            return answer++
        }
    })
    return answer;
}
  • 배열을 map으로 순회하고 키가 큰 사람을 하나씩 더했다.

다른사람 문제풀이

function solution(array, height) {
    return array.filter(v=> v > height).length
}
  • filter 로 해당 조건에 맞는 값을 구하고 배열의 길이를 구함

문제 4.

https://school.programmers.co.kr/learn/courses/30/lessons/120824?language=javascript

내 풀이

	function solution(num_list) {
    var answer = [];
    var odd = 0;
    var even = 0;
    
    num_list.filter(v => v % 2 === 0 ? even++ : odd++)
    answer.push(even,odd)
    return answer;
}

다른 풀이

function solution(num_list) {
  var answer = [0,0];
  for(let num of num_list){
    answer[num %2] += 1
  }
  return answer;
}
  • 답의 배열을 첫번째 두번째로 만들고 배열을 돌다가 짝수 와 홀수 인지를 확인하고
    각각 맞다면 answer[0] 이면 짝수 answer[1] 이면 홀수 각각 +1 로 더해서 넣는다.

문제5

https://school.programmers.co.kr/learn/courses/30/lessons/120826?language=javascript

내풀이

function solution(my_string, letter) {
    var answer = '';
    for(let i of my_string){
       if(i !== letter){
           answer +=i
       }
    }
    return answer;
}
  • 문자열을 for문으로 순회를 돌고 letter과 다른값을 answer에 차례대로 저장

다른풀이

function solution(my_string, letter) {
    return my_string.split(letter).join('');
}
  • letter 기준으로 배열을 만들면 ''빈 문자열이 나온다.
  • ''빈문자열 기준으로 다시 문자열로 변경한다.
profile
열심히 즐기자ㅏㅏㅏㅏㅏㅏㅏ😎

0개의 댓글