(Java) 프로그래머스 약수의 개수와 덧셈

2021. 11. 20. 02:47·코딩 테스트

내 답에서 변수와 코드의 개수를 줄이는 연습을 해야겠다는 생각이 들었다.

풀 때는 쉽다는 생각이 들었는데 풀고 나서 급 반성하게 되었다.


최종 코드

import java.util.ArrayList;
import java.util.List;
class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        List<Integer> num = new ArrayList<>();
        int temp = 0;

        // 수 구해서 리스트에 저장
        while (left != right + 1) {
            num.add(left++);
        }

        for (int i = 0; i < num.size(); i++) {
            // 약수의 개수 측정 변수
            int dnum = 0;
            for (int j = 1; j <= num.get(i); j++) {
                if(num.get(i) % j == 0) {
                    dnum++;
                }
            }
            // 홀수면
            if (dnum % 2 != 0) {
                temp = num.get(i) * -1;
            }
            // 짝수면
            else {
                temp = num.get(i);
            }
            answer += temp;
        }

        return answer;
    }
}

 

다른 분 코드

class Solution {
    public int solution(int left, int right) {
       int answer = 0;
       List<Integer> num = new ArrayList<>();
       for (int i=left;i<=right;i++) {
            //제곱수인 경우 약수의 개수가 홀수
            if (i % Math.sqrt(i) == 0) {
                answer -= i;
            }
            //제곱수가 아닌 경우 약수의 개수가 짝수
            else {
                answer += i;
            }
        }
        return answer;
    }
}

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 폰켓몬  (0) 2021.11.24
(Java) 프로그래머스 실패율  (0) 2021.11.23
(Java) 프로그래머스 3진법 뒤집기  (0) 2021.11.15
(Java) 문자열 p와 y의 개수  (0) 2021.11.13
(Java) 프로그래머스 2016  (0) 2021.11.13
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 폰켓몬
  • (Java) 프로그래머스 실패율
  • (Java) 프로그래머스 3진법 뒤집기
  • (Java) 문자열 p와 y의 개수
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 약수의 개수와 덧셈
상단으로

티스토리툴바