일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 암호론
- class
- 소수판정
- bubble-sort
- HTML
- 객체지향
- 디렉티브
- 백준 알고리즘
- 연결된 예외
- 프로그래밍
- 클래스 패스
- 백준
- 예외처리
- jvm
- LANG
- 자료구조
- 알고리즘
- try&catch
- 객체
- 재귀호출기본
- 자동 형변환
- lang package
- java
- JSP
- 형변환 연산자
- 현대암호
- OOP
- BufferedWrite
- 공개키 암호
- 2884
- Today
- Total
목록알고리즘 (14)
코드일기장

제목: 용액 골드5 문제 KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. 같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다. 예를 들어, 주어진 용액들의 특성값이 [-99, -2, -1, 4, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98인 용액을 혼합하면 특성값이 -1인 용액을 만들..

이진 검색은 선형 검색보다 빠르게 검색할 수 있는 검색 알고리즘이다. 이진 검색(binary search)은 요소가 오름차순 또는 내림차순으로 정렬된 배열에서만 사용할 수 있는 알고리즘이다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("요솟수를 입력하세요: "); int N = sc.nextInt(); int[] arr = new int[N]; System.out.println("오름차순으로 입력하세요."); System.out.print("arr[0]: "); arr[0] = sc.nextInt(..

이번 포스팅 글에서는 배열에서 검색하는 방법 가운데 가장 기본적인 알고리즘을 알아보겠다. 이 알고리즘을 선형 검색이라고 한다. 선형 검색의 정의 요소가 직선 모양으로 늘어선 배열에서의 검색은 원하는 키 값을 갖는 요소를 만날 때까지 맨 앞에서부터 순서대로 요소를 비교(검색)를 한다. 이것을 선형 검색(Linear Search)또는 순차 검색(Sequential Search)라고 한다. 선형 검색 기본적인 알고리즘 static boolean SerchMethod(int[] arr, int n, int key) { int i = 0; while (true) { if (i == n) { // i==n이 같다는 것은 키 값과 같은 요소값을 찾지 못한 것 (검색 실패) return false; } if (arr[..

제목:약수 실버5 문제 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다. 출력 첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다. 아직 초보자인 나한테는 조금 시간도 걸리고 어려워서 인터넷을 서칭해서 풀긴 했다. 코드리뷰: A[]배열에다가 사용자가 입력한 값 N을 넣는다. 그럼 A[]배열의 길이가 만들어질 것이다. for문에서 사용자에게..

제목: 숫자의 합 브론즈2 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. String 타입으로 입력받아 charAt() 메서드를 이용해 문자를 숫자로 형변환 시켜준다. 변환한 값을 다 더하고 출력하면 되는 아주 간단한 문제이다. 코드는 2개를 가지고 왔다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main{ public static void main(String..

제목: 한수 실버4 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 입력받은 수가 몇 개의 한수가 있는지 묻는 문제이다. 한수를 예를 들면서 설명해보자면 210이라는 숫자가 있다. 백의 자릿수는 2 십의 자리수는 1 일의 자리수는 0이다. 여기서 한수의 조건은 (백의 자릿수-십의 자릿수)==(십의 자릿수-일의 자릿수)가 된다면 한수라고 볼 수 있다. 만약 ..

제목: 셀프 넘버 실버5 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, .....