알고리즘 Algorithm(7)
-
최빈수 구하기 문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13zo1KAAACFAYh&categoryId=AV13zo1KAAACFAYh&categoryType=CODE#none SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com package codingProblem; import java.util.Scanner; public class repeatNumber { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nex..
2020.06.08 -
평균값 구하기 문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QRnJqA5cDFAUq&categoryId=AV5QRnJqA5cDFAUq&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); sc.nextLine(); for (int i..
2020.05.25 -
<알기쉬운 알고리즘> Chapter3 - 분할 정복 알고리즘
분할 정복 (Divide-And-Conquer)알고리즘이란 주어진 문제의 입력을 분할하여 문제를 해결(정복)하는 방식의 알고리즘 이다. 분할 된 입력에 대하여 동일한 알고리즘을 적용하여 해를 계산하며, 이들의 해를 취합하여 원래 문제의 해를 얻는다. 여기서 분할된 입력에 대한 문제를 부분문제(subproblem) 이라고 하고, 부분 문제의 해를 부분해 라고 한다. 부분 문제는 더이상 분할 할 수 없을 때까지 계속 분할 한다. 분할 정복 알고리즘의 분류 문제가 a개로 분할 되고, 부분문제의 크기가 1/b로 감소하는 알고리즘 (1) a=b=2인 경우, 합병 정렬, 최근접 점의 쌍 찾기, 공제선 문제 (2) a=3,b=2인 경우, 큰 정수의 곱셈 (3) a=4, b=2인 경우, 큰 정수의 곱셈 (4) a=7,..
2020.05.22 -
입력받은 수 중, 홀수만 더한 값 출력하는 프로그램
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QSEhaA5sDFAUq&categoryId=AV5QSEhaA5sDFAUq&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com public class addOddNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); sc.nextLine(); for (int i = 1; i
2020.05.21 -
<알기쉬운 알고리즘> Chapter2 - 알고리즘을 배우기 위한 준비
2.1 알고리즘 이란 알고리즘은 문제를 해결하는 단계적 절차 또는 방법이다. 알고리즘의 일반적인 특성 정확성 : 주어진 입력에 대해 올바를 해를 주어야 한다. 수행성 : 알고리즘의 각 단계는 컴퓨터에서 수행이 가능 하여야 한다. 유한성 : 일정한 시간내에 종료되어야 한다. 효율성 : 효율적일수록 그 가치가 높아진다. 2.2 최초의 알고리즘 가장 오래된 알고리즘은 유클리드(Euclid)의 최대 공약수를 찾는 알고리즘 이다. 유클리드는 2개의 자연수의 최대공약수는 큰수에서 작은 수를 뺀 수와 작은수의 최대공약수와 같다는 성질을 이용하여 최대공약수를 찾았다. 예를 들어, 24와 14의 최대공약수는 24-14=10과 작은수 14와의 최대공약수와 동일하다. 이 과정을 반복하여 최대공약수를 다음과 같이 계산 하였다..
2020.05.21 -
<알기쉬운 알고리즘> Chapter1 - 알고리즘의 첫걸음
1.1 최대 숫자 찾기 카드 10장이 바닥에 펼쳐져 있을 때, 가장 큰 숫자가 적힌 카드를 찾는 한가지 방법은 카드의 숫자를 하나씩 비교하면서 본 숫자들 중에서 가장 큿 숫자를 기억해가며 진행하는 방법일 것이다. -> 이렇게 찾는 방법을 순차탐색 (Sequential Search)라고 한다. 즉, 카드를 한장씩 차례대로 (주어진 순서대로) 읽어가며 찾는 것이다. 1.2 임의의 숫자 찾기 만약 카드가 15,20,25,35,45,55,60,75,85,90 일때 85를 순차탐색으로 찾을 경우 앞쪽에 있는 8장의 카드를 읽은 후에나 85를 찾는다 -> 오름차순으로 정렬된 데이터를 반으로 나누고, 나누어진 반을 다시 반으로 나누고, 이과정을 반복하여 원하는 데이터를 찾는 탐색 알고리즘을 이진탐색(Binary Se..
2020.03.07