알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

https://school.programmers.co.kr/learn/courses/30/lessons/12977

 

프로그래머스

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

programmers.co.kr


Think🤔

소수를 구하는 방법

3개의 모든 경우의 수를 더하는 방법을 구하면 된다


Solution✍
import java.lang.Math;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        
        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 sum = nums[i] + nums[j] + nums[k];
                    answer += isPrime(sum) ? 1 : 0;
                }
            }
        }
        
        return answer;
    }
    
    
    // 소수인지 판별
    private boolean isPrime(int num){
        for(int i=2; i<=Math.sqrt(num); i++){
            if(num % i == 0){
                return false;
            }
        }
        return true;
    }
}

반복문을 이용해서 세가지의 경우를 더하고, 소수인지 판별을 할 때는 제곱근 이하의 수까지만 검사를 하면

검사할 때 반복문의 시간을 줄일 수 있다.


Review🤩

java.util 패키지 java.lang 패키지의 차이점을 알자

 java.lang

클래스

용도


Object
모든 클래스는 Object가 최상위 클래스로 존재합니다. 배열을 포함한 모든 객체는 이 클래스의 메서드를 구현합니다.


System
표준 입력 장치(키보드)로부터 데이터를 입력 받거나 표준 출력 장치(모니터)로 출력할 때 사용합니다. JVM을 종료시킬 때 사용합니다. 쓰레기 수집기를 실행 요청할 때 사용합니다.


Class
클래스를 메모리로 로딩할 때 사용합니다.


String
문자열을 저장하고 여러 가지 정보를 얻을 때 사용합니다.


StringBuffer, StringBuilder
문자열을 저장하고 내부 문자열을 조작할 때 사용합니다.


Math
수학 함수를 이용할 때 사용합니다.


Wrapper
Byte, Short, Character, Integer, Float, Double, Bollean, Long
기본 타입의 데이터를 갖는 객체를 만들 때 사용합니다. 문자열을 기본 타입으로 변환할 때 사용합니다. 입력값을 검사할 때 사용합니다.

java.util

Arrays
배열을 조작(비교, 복사, 정렬, 찾기)할 때 사용합니다.


Calendar
운영체제의 날짜와 시간을 얻을 때 사용합니다.


Data
날짜와 시간 정보를 저장하는 클래스입니다.


Objects
객체 비교, null 여부 등을 조사할 때 사용합니다.


StringTokenizer
특정 문자로 구분된 문자열을 뽑아낼 때 사용합니다.


Random
난수를 얻을 때 사용합니다.

출처: https://koey.tistory.com/241 [기계공학과졸업하고게임만들기:티스토리]


 

+ Recent posts