반응형 자바38 백준 1193번 분수찾기 자바 java 문제 풀이 처음에 문제를 보았을 땐 지그재그 순서를 이해를 못했다 2/1 -> 3/1 으로 왜 이쪽으로 이동을 하지? 라는 생각에 시간을 많이 소비했다 대각선으로 ↙ (빨간선) 이동하는 것을 보면 1/2 -> 2/1, 1/4 -> 2/3 -> 3/2 -> 4/1 i / j 이면 i + 1 / j - 1로 값이 변경이 된다 대각선으로 ↗ (파란선) 이동하는 것을 보면 3/1 -> 2/2 -> 1/3, 5/1 -> 4/2 -> 3/3 -> 2/4 -> 1/5 i / j 이면 i - 1 / j + 1 로 값이 변경이 된다 → 우측으로 이동하는 경우 (빨간선)는 ↗ 방향으로 이동이 안될 때 i / j 이면 i의 값이 0이 된다면 우측으로 이동하게 처리 ↓ 아래로 이동하는 경우 (파란선)는 ↙ 방향으로 이동이 안.. 2021. 4. 6. 백준 11653 문제 자바 java 문제 www.acmicpc.net/problem/11653 풀이 입력받은 N값을 2부터 시작해서 나눠지지 않는다면 나누는 값을 1 증가시킵니다 N값이 1이 될 때까지 나누는 것을 실행하고 출력을 합니다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int divideNum = 2; StringBuilder sb = new StringBuilder(); while (N != 1) { if (N % divideNum == 0) { N /= divideNum; sb.append(divideNu.. 2021. 2. 15. 백준 10814 문제 자바 java 문제 www.acmicpc.net/problem/10814 풀이 입력 값이 나이(공백)이름 으로 입력이 되기 때문에 split 함수를 이용해서 공백 값을 기준으로 나이, 이름으로 분리를 해서 배열에 넣어 줍니다 Arrays.sort 함수를 이용해서 나이 값을 오름차순으로 정렬을 합니다 (가입 순은 이미 입력 순으로 정렬이 됐음) 코드 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.nextLin.. 2021. 1. 12. 자바 배열 오름차순 내림차순 정렬 Arrays.sort() Arrays.sort() java.util.Arrays 클래스의 Arrays.sort() 함수를 이용하여 배열의 오름차순 내림차순으로 쉽게 정렬할 수 있습니다. Dual-Pivot Quicksort 알고리즘으로 정렬이 됩니다. 평균 시간복잡도 : O(n log n) 최악 시간복잡도 : O(n^2) 오름차순 int[] arr1 = new int[] {5, 3, 2, 4, 1, 2}; System.out.print("정렬 전 : "); for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i] + " "); } System.out.println(); //오름차순 정렬 Arrays.sort(arr1); System.out.print("정렬 후 : ");.. 2021. 1. 6. 백준 2108번 자바 java 문제 www.acmicpc.net/problem/2108 풀이 산술평균, 중앙값, 범위의 값을 구현하는 코드는 간단하지만 최빈값을 구현하는게 조건 때문에 까다로웠다 (양수와 음수 입력 값, 중복되는 입력값과 갯수를 카운팅, 갯수가 같다면 두번째로 작은 값을 출력) 산술평균 산술평균 값 = 입력 값의 총합 / 입력 값 갯수 중앙값 중앙값은 입력 값의 배열을 오름차순으로 정렬한 다음 인덱스값을 2로 나눈 값을 출력 최빈값 양수, 음수의 입력 값의 빈도를 담을 배열을 생성하고 입력할때 배열에 넣어줍니다 (countPlusNum, countMinusNum) 빈도수가 같은 값들만 비교하기 위해서 배열 arrModeNum 생성합니다 temp 변수에 가장 높은 빈도수를 비교해서 넣어줍니다 만약 temp에 이전에 빈도.. 2020. 12. 24. 백준 10989번 자바 java 문제 www.acmicpc.net/problem/10989 풀이 수의 범위가 작다면 카운팅 정렬을 사용하여 더욱 빠르게 정렬할 수 있습니다. 카운팅을 하는 배열의 변수를 생성을 하고 (문제에는 10,000 작거나 같은 자연수여서 int[10001]) 입력 받는 값을 카운팅 배열 인덱스에 집어넣고 +1을 합니다 그리고 출력을 할때 0 이상인 값을 해당 수만큼 출력을 합니다 Scanner, System.out.println() 를 사용하면 시간초과가 나서 BufferedReader, StringBuilder 로 대체해서 해결하였습니다 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; pu.. 2020. 12. 23. 이전 1 ··· 3 4 5 6 7 다음 반응형