Programmers

Programmers 문제 풀이 04

백단비 2023. 3. 27. 14:13

문제 설명 : 짝수의 합

정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해 주세요.

 

제한사항

0 ≤ n ≤ 1000

 

입출력 예

n result
10 30
4 6
function solution(n) {
	var answer = 0;
	for(let i = 0; i <= n; i++) {
    	if(i % 2 === 0) {
        	answer+= i
        }
    }
    return answer;
}

여기서 i++ 대신 i+2로 짝수만 나오게 설정하면

if(i % 2 === 0) 이 부분을 줄일 수 있다.

 

 

문제 설명 : 배열의 평균값

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return 하도록 solution 함수를 완성해 주세요.

 

제한사항

  • 0 ≤ numbers의 원소 ≤ 1,000
  • 1 ≤ numbers의 길이 ≤ 100
  • 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.

 

입출력 예

numbers result
[1,2,3,4,5,6,7,8,9,10] 5.5
[89,90,91,92,93,94,95,96,97,98,99] 94.0

 

function solution(numbers) {
    var answer = 0;
    for(let i = 0; i < numbers.length; i++) {
    	answer += numbers[i]
     }
     return answer/numbers.length;
}

처음에 for문을 이용해서 풀었는데 reduce() 메서드를 알고 나서 reduce로 한번 더 풀어보았습니다.

function solution(numbers) {
	const aver = numbers.reduce((acc,cur) => acc + cur);
    	return aver / numbers.length;
}

reduce가 꽤 유용한 메서드더라고요 좀 더 공부해 봐야겠습니다.

 

 

문제 설명 : 양꼬치

머쓱이네 양꼬치 가게는 10인분 먹으면 음료수 하나를 서비스로 줍니다.

양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다.

정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n 인분과 음료수 k개를 먹었다면

총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해 보세요

 

제한 사항

  •  0 < n < 1,000
  • n / 10 ≤ k < 1,000
  • 서비스로 받은 음료수는 모두 마십니다.

 

입출력 예

n k result
10 3 124,000
64 6 768,000

 

function solution(n, k) {
    let free = Math.floor(n / 10);
    return (n * 12000) + ((k - free) * 2000);
}

서비스로 받은 음료수를 Math.floor(주어진 수 이하의 가장 큰 정수)를 이용해서 구한 후

음료수에서 무료 음료수를 빼고 총금액을 계산하였습니다

 

https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

320x100

'Programmers' 카테고리의 다른 글

Programmers 문제 풀이 06  (0) 2023.03.29
Programmers 문제 풀이 05  (0) 2023.03.28
Programmers 문제 풀이 03  (0) 2023.03.25
programmers 문제 풀이 02  (0) 2023.03.24
programmers 문제 풀이 01  (1) 2023.03.23