본문 바로가기

백준 문제 풀이53

(#3052 Java) 나머지 문제 문제 이해 입력 받은 10개의 정수를 42로 나눈 나머지를 구한 후 그 나머지들을 비교해 서로 다른 값이 몇 개 인지 출력하는 문제이다. 문제 해결 음.. 우선 크기 10의 배열을 만든다. Scanner in = new Scanner(System.in); int[] array = new int[10]; 배열의 크기만큼 반복해 수 입력 받고, 42로 나눈 나머지를 배열에 저장해준다. for (int i = 0; i Arrays.sort( ) 사용해 정렬★ Arrays.sort( ) : 오른차순 정렬 & 중복 제거 Arrays.sort(array); ★나머지가 -1일 수는 .. 2023. 8. 9.
(#5597 Java) 과제 안 내신 분..? 문제 문제 이해 30명 학생 중 28명만 과제를 제출했는데, 제출하지 않은 출석 번호를 순서대로 (작은 순서대로) 구하는 문제. 문제 해결 왜 문제를 처음보면 알고리즘이 바로 생각나지 않는 거지,, 사실 차분하게 생각해보면 생각보다 쉽게 풀리는 문제이다. 우선 1부터 30까지 모든 출석번호가 들어있는 고정적인 배열 하나와, 입력 받을 28개의 출석번호가 담긴 배열 하나가 필요하다. int[] array1 = new int[30]; int[] array2 = new int[28]; 1부터 30까지 모든 출석번호가 들어있는 배열을 만들어보자 for (int i = 0; i < array1.length; i++) { array1[i] = i + 1; //1번부터 저장하기 위해 i + 1 } 그리고 28개의 출.. 2023. 8. 9.
(#10813 Java) 공 바꾸기 문제 문제 이해 문제에 나와있는 예제 입력을 예시로 들어보자. 첫 번째 줄, 첫 번째에 주어진 N은 바구니의 개수이며 들어있는 공은 바구니와 같은 숫자를 가졌다고 한다. N = 5 : 5개의 바구니에는 1 2 3 4 5 각 숫자가 적힌 공이 들어있는 것. M = 4 : 4번에 거쳐 공을 교환한다는 의미이다. 1 2 : 1번 바구니에 들어있는 공과 2번 바구니에 들어있는 공을 바꾼다. 즉 2 1 3 4 5 가 되는 것. 3 4 : 같은 방법으로 공을 바꾸면 2 1 4 3 5 1 4 : 3 1 4 2 5 2 2 : 3 1 4 2 5 (최종 결과) 문제 해결 그럼 이를 어떻게 코드로 구현할까? 우선 이 문제 풀이의 핵심은 temp 사용이다. 알고리즘 처음 배울 때 두 변수 값을 바꾸기 예시로 꼭 나왔던 것 같.. 2023. 8. 8.
(#10810 Java) 공 넣기 문제 문제 이해 문제를 제대로 이해하는 것 부터 시작해야 할 것 같다. 위에서 보여준 예제를 통해 간단히 요약하자면, 5 4 => 5개의 바구니가 있고, 공을 4번의 방법으로 넣는다. 1 2 3 => 1번부터 2번까지의 바구니에 3번 공을 넣는다. 즉 현재 상태는 3 3 0 0.0 이 되는 것 3 4 4 => 위와 같은 원리로 3번부터 4번까지의 바구니에 4번 공을 넣음. 즉 3 3 4 4 0 1 4 1 => 1번부터 4번까지 1번 공! 현재 상태는 1 1 1 1 0 2 2 2 => 2번부터 2번까지 2번 공을 넣어줌. 즉 결과 : 1 2 1 1 0 이 출력되는 것! 문제 해결 그럼 이를 코드로 어떻게 구현해야 할까? 우선 바구니의 개수와 공을 몇 번의 방법으로 넣을지 입력을 받아야 한다. Scanner.. 2023. 8. 4.
(#2562 Java) 최댓값 문제 문제 해결 이 문제에서 최댓값을 구하는 방법을 이전 문제 (#10818) 과 다르게 해야하는 이유는 정렬하면 안되기 때문!! 이다. 이전 문제에서는 Arrays.sort() 메소드를 사용해 오름차순으로 정렬시킨 후, 인덱스의 마지막 값을 출력하면 해결되는 문제였다. But 이 문제는 최댓값이 몇 번째에 입력됐는지를 함께 출력해야 하므로 이전 방법으로 해결할 수 없다. 그럼 어떻게 해야할깡 일단 아래 세 가지의 변수 설정을 해줘야 한다. 1. 최댓값을 저장할 변수 (max) 2. 인덱스 번호 (index) 3. 값을 입력 받을 때마다 값을 올릴 변수 (count) => 몇 번째로 입력받았는지 알기 위해 int max = 0; int index = 0; int count = 0; 변수 설정을 했다면, .. 2023. 8. 3.
(#10818 Java) 최소, 최대 문제 문제 해결 이 문제는 Arrays.sort() 메소드를 알면 아주 간단하게 풀 수 있는 문제이다 Arrays.sort() : 배열의 원소들을 오름차순으로 정렬해주는 메소드 즉, 최솟값은 인덱스 0번 ( arr [0] ), 최댓값은 인덱스 마지막 ( arr [ N - 1 ] )에 위치해있다 코드 import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int[] arr = new int[N]; for (int i = 0; i < N; i++) { arr[i.. 2023. 8. 3.
반응형