알고리즘 풀이 방법입니다.
문제(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 [기계공학과졸업하고게임만들기:티스토리]
'Algorithm' 카테고리의 다른 글
[프로그래머스] 2016년 (0) | 2022.07.27 |
---|---|
[프로그래머스] 최소직사각형 (0) | 2022.07.27 |
[프로그래머스] 체육복 (0) | 2022.07.26 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2022.07.11 |
[프로그래머스] 있었는데요 없었습니다 (0) | 2022.07.08 |