전체 글

전체 글

    백준 2231. 분해합 (JAVA)

    백준 2231. 분해합 (JAVA)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] arge) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int result = 0; for(int i = 0 ; i < N ;i++) { int num = find(i); // 분해합 구함.... if(num == N) { // 분해합이 N과 같으면 r..

    Counting Sort (계수 정렬)

    Counting Sort (계수 정렬)

    정렬에는 계수 정렬뿐 아니라 다른 정렬도 많지만 최근에 백준에서 정렬에 대한 문제를 풀다가 'Counting Sort'를 알게 되어 계수 정렬에 대해 정리를 하고 싶어서 이 글을 쓰게 되었다. Counting Sort이란 ? 카운팅 정렬은 숫자끼리 비교하는 것이 아닌 각 항목의 개수를 세어 저장해두고 그에 따라서 적절한 위치에 정렬하는 효율적인 알고리즘이다. 시간 복잡도는 𝚶(𝑛)이며 매우 좋은 성능을 보여준다.( 시간 복잡도​에 대해서 따로 공부해서 포스팅 하겠다.) 하지만 좋은 성능을 가진 만큼 제한 사항이 존재한다. 정수나 정수로 표현할 수 있는 자료에 한해서 적용 가능. 각 항목을 카운트하기 위한 충분한 공간을 할당하려면 배열 내에서 가장 큰 정수를 알아야 함. 정렬 방법 arr 배열에 들어있는 ..

    백준 2941. 크로아티아 알파벳 (JAVA)

    백준 2941. 크로아티아 알파벳 (JAVA)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] arge) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int cnt = 0; char ch ; for(int i = 0 ; i < str.length(); i++) { ch = str.charAt(i); if(ch == 'c') { if(i < str.length() -1)..

    백준 10989. 수 정렬하기 3(JAVA)

    백준 10989. 수 정렬하기 3(JAVA)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] arge) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int num = Integer.parseInt(br.readLine()); int[] arr = new int[num]; // 입력받을 배열 int[] counting = new int[10001]..

    백준 1065. 한수(JAVA)

    백준 1065. 한수(JAVA)

    import java.util.Scanner; public class Main { public static void main(String[] arge) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int num = Hansu(N); System.out.println(num); } public static int Hansu(int N) { int cnt = 0; // 한수 개수를 세기 위한 변수 for(int i = 1 ; i = 100 & i

    백준 4673. 셀프 넘버(JAVA)

    백준 4673. 셀프 넘버(JAVA)

    ○ 문제 요약 정수와 해당 정수의 자릿수에 있는 값을 더해서 만든 것을 셀프 넘버라고 한다. 예를 들어, 99라는 정수에 99 + 9 + 9 = 117이 나오는데 이때 99를 '생성자'라고 하는데 생성자가 없는 수를 '셀프 넘버'라고 한다. 셀프 넘버가 출력되도록 프로그램을 작성해라. ○ 문제 풀이 1 public class Main { public static void main(String[] arge) { boolean[] boolarr = new boolean[10001]; for(int i = 1 ; i < 10001; i++) { int n = SelfNumber(i); if(n < 10001) { boolarr[n] = true; } } for(int i = 1; i < 10001; i++) ..

    백준 4344. 평균은 넘겠지(JAVA)

    백준 4344. 평균은 넘겠지(JAVA)

    import java.util.Scanner; public class Main { public static void main(String[] arge) { Scanner sc = new Scanner(System.in); int test_case = sc.nextInt(); // 테스트 케이스 int score = 0; // 총점을 구하기 위한 변수 int cnt = 0; // 평균을 넘는 인원이 몇명인지 카운트하는 변수 double result = 0; // 비율을 구하는 변수 for(int i = 0 ; i < test_case; i++) { int[] arr = new int[sc.nextInt()]; // 인원 수만큼 배열을 만듦. for(int j = 0 ; j < arr.length; j++)..

    백준 1260. DFS와 BFS(JAVA)

    백준 1260. DFS와 BFS(JAVA)

    import java.io.IOException; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.util.Stack; public class Main { static int n , m , v; // 정점, 간선, 시작 정점 static int[][] graph; // static boolean Visit[]; // 방문하였는지 확인하기 위해 static Stack st = new Stack(); static Queue q = new LinkedList(); public static void main(String[] args) throws IOException { Scanner sc = ne..

    백준 1110. 더하기 사이클(JAVA)

    백준 1110. 더하기 사이클(JAVA)

    import java.util.Scanner; public class Main { public static void main(String[] arge) { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); int new_num = input; int cnt = 0; while(true) { int num1 = input / 10; int num2 = input % 10; input = num1 + num2; input = input % 10; input = (num2 * 10) + input; cnt++; if(new_num == input) { break; } } System.out.println(cnt); } } ○ 문제 요약 숫자를 입력..

    백준 16173. 점프왕 쩰리(Small)(JAVA)

    백준 16173. 점프왕 쩰리(Small)(JAVA)

    import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int[][] gameArea = new int[a][a]; boolean[][] visited = new boolean[a][a]; for(int i = 0 ; i < gameArea.length ; i++) { for(int j = 0 ; j < gameArea.length; j++) { gameArea[i][j] = sc.nextInt(); visi..