코딩 정복 가즈아~
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
Home
  • 분류 전체보기 (159)
    • 알고리즘 풀이 (149)
      • 프로그래머스 (89)
      • 백준 (59)
    • 취준 일기 (6)
    • 네트워크 정리 (1)
블로그 내 검색

코딩 정복 가즈아~

(っ◔◡◔)っ ♥ 2021 취뽀하자!! ♥

  • 알고리즘 풀이/프로그래머스

    [level1] 프로그래머스 - 하샤드 수(JAVA)

    2021. 8. 31.

    by. 데롱디롱

    728x90

    - 효율성은 떨어져도 stream을 이용해서 풀어보고자 하였다.

    import java.util.Arrays;
    
    class Solution {
        public boolean solution(int x) {
            int n = Arrays.stream(Integer.toString(x).chars().boxed().mapToInt(i -> i -'0').toArray()).sum();
            return x % n == 0 ? true : false;
        }
    }

     

    그런데 굳이

    숫자 -> 문자열 -> char배열 -> int배열 -> int배열의 총 합 을 구하게 하다보니 시간이 매우 오래걸린다.

     

     

    class Solution {
        static int sum = 0;
        public boolean solution(int x) {
            Integer.toString(x).chars().forEach(c -> sum += c - '0');
    		return x % sum == 0 ? true : false;
        }
    }

    숫자 -> 문자열 -> char배열 -> 배열의 총 합 을 구하게 하니까 시간이 좀 더 줄었다.

     

     

    stream이 낯설어서 계속 써보려고 하는데,

    stream이 코드는 단순하지만, 타입이나 형태기 굳이 변환이 필요 없을땐 for문을 쓰는게 시간은 훨씬 절약되는것 같다.!!

    저작자표시 (새창열림)

    '알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

    [level1] 프로그래머스 - 행렬의 덧셈(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 핸드폰 번호 가리기(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 평균 구하기(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 콜라츠 추측(JAVA)  (0) 2021.08.31
    [level1] 프로그래머스 - 최대공약수와 최소공배수(JAVA)  (0) 2021.08.31

    댓글

    관련글

    • [level1] 프로그래머스 - 행렬의 덧셈(JAVA) 2021.08.31
    • [level1] 프로그래머스 - 핸드폰 번호 가리기(JAVA) 2021.08.31
    • [level1] 프로그래머스 - 평균 구하기(JAVA) 2021.08.31
    • [level1] 프로그래머스 - 콜라츠 추측(JAVA) 2021.08.31
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

피할 수 없다면, 순간을 즐겨라

Designed by Nana
블로그 이미지
데롱디롱
희희.. (๑′ᴗ‵๑)

티스토리툴바