새소식

Programmers Coding Test/Java

[프로그래머스 120831] Java - 코딩테스트 입문 / 짝수의 합

  • -

 

짝수의 합

 

 

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

 

프로그래머스

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

programmers.co.kr

 

 

 

1)  문제

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

 

 

2)  예시

 

 

Result Table
n result
10 30
4 6

 

 

 

입출력 예 #1
n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.


입출력 예 #2
n이 4이므로 2 + 4 = 6을 return 합니다.

 

 

 

3)  풀이

 


1. 클래스 선언을 해줍니다

● class Solution {

클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.

 

 

 

 

2. 메소드 선언을 해줍니다.

● public int solution(int n){

정수인 n를 매개변수로 사용하는 solution 메소드를 선언해줍니다.

메소드의 결과값인 solution 또한 정수값으로 나오므로, 데이터 타입은 모두 int로 해줍니다.

 

 

 

 

3. 먼저 n은 0 초과, 1000이하의 정수라는 조건을 만들어주기 위해, if 구문을 사용해줍니다.

n이하의 모든 짝수를 더한 값을 sum라는 변수값으로 저장되게하고, 초기값 0을 이용하여 초기화해줍니다.
if (0 < n && n <= 1000) {
       int sum = 0;

 

 

 

 

4. for 반복문을 이용해서 i의 초기값은 2이고, i가 n이하일 때, 2씩 더해주며, sum은 결국 모든 i의 합이 되도록합니다.

● for (int i = 2; i <= n; i += 2) {
                sum += i;
            }
 

 

※ for 반복문

특정 조건이 만족될 때까지, 블록내의 코드를 반복 실행해줍니다.

구조

for (초기식; 조건식; 증감식) {
    // 반복할 코드 블록
}

 

 예시

1부터 5까지의 숫자를 출력하는 for 반복문
for (int i = 1; i <= 5; i++) {
         System.out.println(i);

 }

 

 

 

 

5. 결과값으로 나온 것을 result로 반환해줍니다.
 return sum;

 

 

 

 

6. 조건에 만족하지 않을 경우 (n의 범위값), 예외처리 해줍니다.
} else {
            throw new IllegalArgumentException("n은 0 초과 1000 이하의 정수여야 합니다.");
        }

 

※  throw new IllegalArgumentException

자바에서 예외를 발생시키는 코드로, 주로 메소드나 함수가 부적절한 인자(argument)를 받았을 때 사용됩니다.

 

 

4)  코드

 

class Solution {
    public int solution(int n) {
        if (0 < n && n <= 1000) {
            int sum = 0;

            for (int i = 2; i <= n; i += 2) {
                sum += i;
            }

            return sum;
        } else {
            throw new IllegalArgumentException("n은 0 초과 1000 이하의 정수여야 합니다.");
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.