본문 바로가기

백준 문제 풀이/1차원 배열10

(#1546 Java) 평균 문제 문제 이해 이 문제는 세준이의 점수를 입력 받고, 그 중 최댓값을 찾아 M이라구 했을 떄, 점수/M*100으로 모든 점수를 바꾼 후, 새로운 평균을 계산해 출력하는 문제다. 즉 세준이의 점수 조작,,,, 문제 해결 이 문제의 핵심은 배열, 최댓값, 합, 평균 등을 double 형태로 받아야 한다는 것이다. int를 사용해 계산하면 소숫점까지 나오지 않아 문제가 원하는 출력 형태가 나오지 않는다. 우선 과목의 개수 N을 입력 받고, 배열, 최댓값 M, 합 sum을 생성 및 초기 작업을 해준다. Scanner in = new Scanner(System.in); int N = in.nextInt(); //과목 개수 double[] array = new double[N]; double M = array[0.. 2023. 8. 12.
(#10811 Java) 바구니 뒤집기 문제 문제 이해 5 4 : 5개의 바구니. 순서대로 1 2 3 4 5 의 번호가 적혀 있음. 4번 순서를 역순으로 바꾼다는 의미. 1 2 : 1번부터 2번까지 순서를 역순으로 바꿈. 2 1 3 4 5 3 4 : 3번부터 4번까지 순서를 역순으로 바꿈. 2 1 4 3 5 1 4 : 1번부터 4번까지 순서를 역순으로 바꿈. 3 4 1 2 5 2 2 : 그대로. 3 4 1 2 5 => 최종 출력 결과 문제 해결 우선 바구니의 개수 N과 역순으로 몇 번 바꾸는지를 나타내는 M을 입력 받고, 바구니 안에 숫자를 넣을 배열을 생성한다. Scanner in = new Scanner(System.in); int N = in.nextInt(); int M = in.nextInt(); int arr[] = new int[.. 2023. 8. 11.
(#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.
반응형