Noah_Developer
Developer Noah
Noah_Developer
전체 방문자
오늘
어제
  • 전체보기 (87)
    • Programmers (33)
      • Level1 (33)
    • FRONT-END (3)
      • React (2)
      • HTML (0)
      • CSS (0)
      • JavaScrpit (1)
    • BACK-END (23)
      • JAVA (14)
      • C (0)
      • Spring (5)
    • DATABASE (11)
      • MySQL (3)
      • Oracle (0)
    • IDE (2)
      • IntelliJ (2)
      • Eclipse (0)
      • VSCode (0)
    • Android (1)
    • 용어 (2)
      • 금융 (2)
    • Developer Diary (5)
      • Web (1)
    • 자격증 (1)
    • Operating System (3)
      • Linux (2)
    • Info (2)

블로그 메뉴

  • 홈
  • 방명록
  • 포트폴리오
  • 깃허브

공지사항

  • 🙏 방문 감사합니다.

인기 글

태그

  • 크레인 인형뽑기 정답
  • 자바 알고리즘 연습문제
  • 프로그래머스 문제풀이
  • programmers level 1
  • String StringBuilder 차이
  • 알고리즘 쉬운문제
  • 코딩테스트 문제 풀이
  • 프로그래머스 연습문제
  • 개발일기
  • 코딩테스트
  • 크레인 인형뽑기 풀이
  • 알고리즘 예제
  • programmers
  • level1
  • 알고리즘 풀이
  • 프로그래머스
  • 초보자 알고리즘
  • 알고리즘 문제
  • 코딩테스트 문제
  • 자바 쉬운 알고리즘
  • MySQL
  • 알고리즘 블로그
  • 카카오 블라인드
  • 크레인 인형뽑기
  • 코딩테스트 준비
  • 알고리즘 연습문제
  • 프로그래머스 코딩연습
  • 카카오공채
  • 카카오 블라인드 테스트
  • 프로그래머스 레벨1

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Noah_Developer

Developer Noah

[Programmers Level 1] 약수의 개수와 덧셈 정답 및 문제 풀이
Programmers/Level1

[Programmers Level 1] 약수의 개수와 덧셈 정답 및 문제 풀이

2021. 5. 22. 17:20
728x90

약수의 개수와 덧셈 원문 보기

 

코딩테스트 연습 - 약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주

programmers.co.kr

👀 문제 설명

 

두 정수 left와 right가 매개변수로 주어집니다. 

left부터 right까지의 모든 수들 중에서,

약수의 개수가 짝수인 수는 더하고,

약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

 

🚥 제한사항

1️⃣1 ≤ left ≤ right ≤ 1,000

 


 

📌 입출력 예

left right result
13 17 43
24 27 52

입출력 예 설명

 

입출력 예 #1

다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.

수 약수 개수
13 1, 13 2
14 1, 2, 7, 14 4
15 1, 3, 5, 15 4
16 1, 2, 4, 8, 16 5
17 1, 17 2

따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다.

 

입출력 예 #2

다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다.

수 약수 개수
24 1, 2, 3, 4, 6, 8, 12, 24 8
25 1, 5, 25 3
26 1, 2, 13, 26 4
27 1, 3, 9, 27 4

따라서, 24 - 25 + 26 + 27 = 52를 return 해야 합니다.

 


 

🤨 고민

1️⃣ 약수 구하는 방법 복습
2️⃣ 반복문 안에서 '수' 만 정확하게 캐치하여 덧셈하는 로직 설계

 

💻 1차 코딩

1차 제출.

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        // 입력받은 ㅣeft와 right의 사이를 도는 outer for
        for (int i = left ; i <= right ; i ++){
        
            // 약수의 개수 체크
            int count = 0;
            
            // 약수를 구하여 카운트 ++ 하는 inner for
            for (int j = 1; j <= i/2; ++j) if (i % j == 0) count++;
            
            // 1이 왔을 때도 성립 할 수 있도록 ++처리
            count++;
            
            //System.out.println("[DEBUG] count = " + count + ", i = " + i);
            // 카운트를 2로 나누어 짝수(+), 홀수(-) 연산 되도록 처리  
            answer = count % 2 == 0 ? answer+i : answer - i;
            
        }
        
        return answer;
    }
}

 

약수의 개수와 덧셈 테스트 결과.png

 

📝 1차 채점

 

약수의 개수와 덧셈 채점 결과.png

 

⏱ 소요시간 및 후기

소요 시간 30분 이내

 

풀이는 10분 안에 하였지만

정확성, 효율성에 신경써서 추가적으로 생각하며 풀이를 해보았으나,

좀 더 나은 풀이 방법이 없는지 확인을 해보았다.

 

다 비슷비슷한 코딩밖에 보이지 않아 공부할 내용을 더 확인하지 못했다.

728x90
저작자표시 (새창열림)

'Programmers > Level1' 카테고리의 다른 글

[Programmers Level 1] [1차] 다트게임 정답 및 문제 풀이(카카오 블라인드 코딩 테스트)  (0) 2021.05.26
[Programmers Level 1] 나누어 떨어지는 숫자 배열 정답 및 문제풀이  (0) 2021.05.24
[Programmers Level 1] 체육복 정답 및 문제 풀이  (0) 2021.05.20
[Programmers Level 1] [1차]비밀지도 정답 및 문제 풀이(2018 카카오 블라인드 테스트)  (0) 2021.05.17
[Programmers Level 1] x만큼 간격이 있는 n개의 숫자 정답 및 문제 풀이  (0) 2021.05.16
    'Programmers/Level1' 카테고리의 다른 글
    • [Programmers Level 1] [1차] 다트게임 정답 및 문제 풀이(카카오 블라인드 코딩 테스트)
    • [Programmers Level 1] 나누어 떨어지는 숫자 배열 정답 및 문제풀이
    • [Programmers Level 1] 체육복 정답 및 문제 풀이
    • [Programmers Level 1] [1차]비밀지도 정답 및 문제 풀이(2018 카카오 블라인드 테스트)
    Noah_Developer
    Noah_Developer
    개발 기록 목적을 가진 블로그입니다.

    티스토리툴바