알고리즘 (105) 썸네일형 리스트형 오름차순으로 정렬된 정수형 배열에서 중복을 제외한 종류의 수를 계산하는 함수 ※조건: 배열은 오름차순으로 정렬되어 입력된다. import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 중복을 제외한 숫자의 종류의 수를 계산하는 함수 * @param data 원본 배열 * @param n 원본 배열의 크기 * @return 숫자의 종류의 수 */ public static int getElementTypeCount(int[] data, int n){ int countType = 0; for(int i = 0; i < n; i++){ //data[i] 모든 원소가 차례로 한 번씩 순서대.. 입력 받은 정수형 배열이 오름차순인지 검사하는 알고리즘 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 주어진 배열이 오름차순인지 검사하는 함수 * @param data * @param n 데이터의 수 * @return data[0] ~ data[n-1]이 오름차순이라면 true, else false */ public static boolean isOrdered(int[] data, int n){ int count = 0; //data에서 인접한 두 원수가 오름차순인 쌍의 수 for(int i = 0; i + 1 < n; i++){ if(data[i] 검색 조건: 생일(month)과 생일이 일치하는 도토리 중 가장 큰 키를 갖는 도토리를 반환하는 함수 추가 시나리오: 도토리들은 키를 기준으로 오름차순으로 정렬되어 있다고 가정 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 생일이 m월인 가장 큰 키의 도토리를 찾는 함수 * @param height 각 도토리의 키 * @param month 각 도토리의 출생 월 * @param n 도토리의 수 * @param m 찾고자 하는 달 * @return month[k] == m인 가장 큰 height[k] */ public static int getMaximumHeight(int[] height, i.. 1부터 정수 n까지 1 + (1 + 2) + (1 + 2 + 3) + .... + (1 + 1이상 n 이하 모든 정수의 합 )과 같은 식의 합을 구하는 알고리즘 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * N에 대한 정답을 계산하는 함수 * @param N * @return */ public static int getRangeSumFromOne(int n){ int s = 0; for(int i = 1; i 선택 정렬 알고리즘 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static void selectionSort(int[] data, int n){ //정수형 배열과 크기를 입력 받음 for(int i = 0; i < n; i++){ //배열의 크기만큼 1씩 증가하며 실행 int idx = i; //idx(최솟값을 담을 변수)를 선언 for(int j = i; j < n; j++){ if(data[j] < data[idx]){ //만약 data[idx](현재 최소값)보다 data[j]가 작다면 idx = j; .. 입력 받은 정수형 배열에서 배열 평균과 가장 가까운 원소의 값과 순서(인덱스 +1)를 반환하는 알고리즘 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 평균과의 차가 가장 작은 데이터의 번호를 반환하는 함수 * 여러 가지라면 가장 빠른 번호를 반환한다. * * @param data * @param n * @return int 가장 평균과 가까운 데이터의 번호 (1번부터 시작) */ public static int findIndex(int[] data, int n){ int S = 0; int x = 0; for(int i =0; i < n; i++){ S += data[i]; } //x := da.. 입력 받은 문자열 배열에서 원하는 값의 첫번째 원소와 마지막 원소를 찾는 알고리즘 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * @param school 각 사람들의 소속학교 정보 배열 * @param n 사람들의 수 * @param findName 찾을 학교 이름 */ public static int[] getIndexes(String[] school, int n, String findName){ int firstIndex = -1; //존재하지 않으면 -1 int lastIndex = -1; //존재하지 않으면 -1 for(int i = 0; i < n; i++){ if.. 입력 받은 정수형 배열에서 원하는 값이 있는 인덱스를 반환하는 알고리즘 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 배열에서 특정 원소의 위치를 찾는 함수 * @param data 중복 없는 정수 배열 data[0] ~ data[n-1] * @param n 배열의 크기 n * @param m 배열에서 찾고자 하는 원소 * @return 원소가 존재한다면 인덱스를, 존재하지 않으면 -1을 반환한다. */ public static int findIndex(int[] data, int length, int findNum){ for(int i = 0; i < lengt.. 이전 1 2 3 4 5 ··· 14 다음