Algorithm & Data Structure
[JAVA] 프로그래머스 : 나누어 떨어지는 숫자 배열
https://programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 풀이 ArrayList 를 정렬하는데는 Collections.sort() 메소드를 사용했다. sort() 메소드의 인자로 정렬할 리스트를 넘겨준다. import java.util.ArrayList; import java.util.Collections; class Solution { public ..
[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 풀이 각 자릿수를 구하기위해 10씩 나눈 나머지를 더한다. import java.util.*; public class Solution { public int solution(int n) { int answer = 0; while(n != 0){ answer += n%10; n /= 10;..
[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 풀이 간단하게 숫자의 절반까지만 for문을 돌리는 방법으로 풀었다. 12의 경우 약수가 1,2,3,4,6,12이므로 6까지 돌려서 더하고 마지막에 12를 더해서 return하면된다. class Solution { public int solution(int n) { int answer = 0; for (int ..
[JAVA] 프로그래머스 : 정수 제곱근 판별
https://programmers.co.kr/learn/courses/30/lessons/12934?language=java 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 풀이 양의 정수인지 아닌지 판별을 위해 1로 나눠서 나머지가 0임을 확인했다. class Solution { public long solution(long n) { double x = Math.sqrt(n); // n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴 // 1로 나눴을때 나머지가 0이면 정수..
[JAVA] 프로그래머스 : 소수찾기
https://programmers.co.kr/learn/courses/30/lessons/12921?language=java 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 풀이 먼저, 소수인지를 판별하는 IsPrime() 함수를 정의하려고한다. 입력에 들어온 숫자 num이 소수라면 1을 소수가 아니라면 0을 return한다. 첫번째 방법 소수는 1과 자기자신으로만 나누어지는 수를 의미한다. 따라서 2부터 입력받은 숫자 n까지 나눠보고 나머지가 0이 되는 수가 없다면 소수로 정의한다..
[JAVA] 프로그래머스 : 최대공약수와 최소공배수
https://programmers.co.kr/learn/courses/30/lessons/12940?language=java 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 풀이 최대공약수는 두 수 중 공통된 약수 중 가장 큰 자연수, 최소공배수는 두 수의 공통된 배수중 가장 작은 자연수를 의미한다. 때문에 n과 m중 더 작은 수부터 1씩 줄여나가며 둘 다 나머지가 0이 되는 수를 최대공약수로, n*m을 최대공약수로 나눠준 수를 최소공배수로 넣어주었다. class Soluti..
[JAVA] 프로그래머스 1단계 5문제
짝수와 홀수 : https://programmers.co.kr/learn/courses/30/lessons/12937 classSolution{ public String solution(int num) { //1. if문 if (num%2==0) return "Even"; else return "Odd"; // 2. 삼항연산자 return (num%2==0)? "Even" : "Odd"; } } 평균구하기 : https://programmers.co.kr/learn/courses/30/lessons/12944 class Solution { public double solution(int[] arr) { double sum=0; //for (int i=0;i
[JAVA] 백준 11724번 : 연결 요소의 개수
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주�� www.acmicpc.net 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램. 입력 - 첫째 줄에 정점의 개수 N과 간선의 개수 M. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) - 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. 출력 첫째 줄에 연결 요소의 개수를 출력..