본문 바로가기

자바65

[Java] 프로그래머스 > 약수의 합 https://programmers.co.kr/learn/courses/30/lessons/12928 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 반복문을 n/2까지만 반복하고 answer값에 n을 더해 리턴해준다. class Solution { public int solution(int n) { int answer = 0; for(int i=1;i 2022. 1. 20.
[Java] 프로그래머스 > 나누어 떨어지는 숫자 배열 https://programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr Arraylist를 만들어서 반복문을 통해 나누어 떨어지는 수를 추가하고 정렬해서 배열 크기 지정후 하나씩 대입하도록 일차원적인 생각으로 풀었다. 내 풀이 import java.util.*; class Solution { public int[] solution(int[] arr, int divi.. 2022. 1. 16.
[Java] 프로그래머스 > 최대공약수와 최소공배수 https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 최대공약수 -> 유클리드 호제법 이용 최소공배수 -> n*m/최대공약수 유클리드 호제법 유클리드 로제법이란 2개의 자연수의 최대공약수를 구하는 알고리즘이다. 자연수 a,b(a>b)에 대하여 a를 b로 나눈 나머지가 r일때 a,b의 최대공약수와 b,r의 최대공약수가 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다.. 2022. 1. 16.
[Java] 프로그래머스 > 소수찾기 https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수 반환 소수는 1과 자기 자신으로만 나누어지는 수를 (1은 소수가 X) n은 2이상 1000000이하의 자연수입니다. 문제 보자마자 반복문으로 일차원적으로 풀었다. 그런데 시간 초과로 실패! flag 변수 사용하면 더 간단했을텐데 .. 어쨌든 실패 class Solution { .. 2022. 1. 13.
[Java] 프로그래머스 > 자릿수 더하기 https://programmers.co.kr/learn/courses/30/lessons/12931 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 값 구하기 N의 범위 : 100,000,000 이하의 자연수 N의 범위가 커서 반복문을 생각하기에 생각이 꼬여버릴 것 같아 형변환하는 방법으로 풀었다. int값 N을 string으로 바꿔서 split()함수를 이.. 2022. 1. 13.
[Java] 프로그래머스 > 두 개 뽑아서 더하기 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 중복 제거해주는 hashset 이용해서 풀려고 했는데 hashset을 배열로 어떻게 변환하는지 몰라서 엄청 헤매다가 결국 arraylist로 풀었다.. 자바 자료구조 공부 다시 해야 할 듯.. arraylist 사용한 이유 -> 배열과 다르게 동적으로 크기 설정 가능, 특정 값 확인 가능 import java.ut.. 2022. 1. 13.