[프로그래머스_1] 소수 만들기 JAVA

2023. 4. 16. 16:58·알고리즘/알고리즘 풀이
반응형

 

프로그래머스

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

programmers.co.kr

 

CODE

import java.util.*;
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        
        Arrays.sort(nums);

        for(int i = 0; i < nums.length; i++) {
            for(int j = i+1; j < nums.length; j++) {
                for(int k = j+1; k < nums.length; k++) {
                    int result = isPrime(nums[i], nums[j], nums[k]);
                    answer += result;
                }
            }
        }
        return answer;
    }
    
        public static int isPrime(int x, int y, int z) {
        int sum = x + y + z;
        
        int cnt = 0;
        for(int i = 3; i < sum; i+=2) {
            if(sum % i == 0 || sum % 2 == 0) {
                return 0;
            }
        }
        return 1;
    }
}

소수를 판별하는 문제로, 코딩테스트에서 자주 출제되는 유형 중 하나이다. 소수는 1부터 자기 자신의 숫자 범위에서 1과 자기 자신만을 약수로 가지는 수이다. for문은 3중 for문을 이용했으며, 소수인지 아닌지 판단하는 로직은 따로 함수로 뺐다.

소수 문제에서 나름 핵심이라고 생각하는 부분은 소수를 판별하는 for문의 반복 횟수를 어떻게 줄이느냐에 있다고 생각한다(물론 위 코드가 엄청난 효율성을 자랑하는 코드는 아니고 나름대로 예외처리 한 것). 나는 i를 0이나 1이 아닌 3부터 시작하였고 i를 2씩 증가시켰다. 반복문을 돌 때 한 번이라도 나누어 떨어지거나, 혹은 짝수일 때 바로 반복문을 종료하도록 로직을 작성했다.

 

실행 결과

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • [프로그래머스_1] 소수 찾기 JAVA
  • [프로그래머스_1] 소수 찾기 JAVA
  • [프로그래머스_1] 숫자 짝꿍 JAVA
  • [프로그래머스_1] 햄버거 만들기 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링부트
    springboot
    방통대
    프로그래머스
    토이프로젝트
    개발자
    백준
    SQL
    JPA
    기출문제
    egov
    인프런
    IT
    알고리즘
    RESTful
    토비의스프링부트
    Java
    넥사크로
    MSA
    전자정부프레임워크
    QueryDSL
    SpringBoot를 이용한 RESTful Web Service 개발
    Spring
    운영체제
    oracle
    react
    에러해결
    프론트엔드
    자바스크립트
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[프로그래머스_1] 소수 만들기 JAVA
상단으로

티스토리툴바