본문 바로가기

날이 좋지 않아서/코딩 테스트

3,5의 배수의 총합을 구하라

 

 

 

10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.

1000미만의 자연수에서 3,5의 배수의 총합을 구하라.

 

 

내가 풀이한 소스 코드는..

public class Multiples {
        public static void main(String args[]) {
            int sum=0;
            for (int i=0; i<1000; i++){
                if(i%3==0 || i%5==0) {
                    sum += i;
                }
            }
            System.out.println(sum);
        }
    }

 

정답은 233168 이다.

 

 

다른 java 풀이를 보면..

 

public static int Print(int Max)
        {
            int sums = 0;
            for (int i = 1; i < Max; i++)
            {
                if (i % 3 == 0 || i % 5 == 0)
                {
                    sums += i;
                }
            }
            return sums;
        } 

 

메서드를 만들어서 return 시킨 모습니다.

콘솔에 찍기 위해 System.out.plintln()을 사용한 나와 다른 풀이였다.

 

 

java 8버전 부터 지원하는 기능을 이용한 풀이다.

 

 
import java.util.stream.IntStream;
    public static void main(String[] args) {
        System.out.println(String.format("정답: %d", foo(1000)));
    }

    private static int foo(int end) {
        return IntStream.range(1, end).filter(j -> j%3==0 || j%5==0).sum();
    }

 

 

파이썬 풀이를 보면 굉장히 간결한 것에 비해 자바 풀이는 다소 긴 편이었다.

 

그래도 이런 java8 풀이를 보면 이게 정말 자바가 맞나 싶을 정도로 신기하다.

 

특히 람다식을 이용한 부분이 인상 깊었다.

 

 

java8의 특징을 잘 설명한 블로그를 찾았다.

 

 

 

 

Java8 정리 : 개요

Java9이 정식 릴리즈된 시점에서 이제야 Java8를 공부한다는 것이 늦은 감이 있지만 더 늦기 전에 Java8에 대해 공부하고 하나씩 정리해보려고 합니다. 해당 포스팅은 자바 8 인 액션:전문가를 위한 최신 자바 기법 가이드을 참고하여 진행할 예정입니다. 1. 자바가 변화하는 이유 Java8에서는 기존 버전들과 비교해서 가장 큰 변화가 있었습니다.…

friday.fun25.co.kr

 

 

 

 

 

코딩도장

프로그래밍 문제풀이를 통해서 코딩 실력을 수련

codingdojang.com