단계별로 풀어보기 - 1차원배열 java백준 공부/Java2021. 11. 22. 12:47
Table of Contents
* 완벽한 정답은 없다
* 여러 정답 블로그 보면서 다른 사람의 코드도 읽으며 이해하기
10818
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int arr[] = new int[num];
for (int i = 0; i < num; i++) {
arr[i] = scan.nextInt();
}
Arrays.sort(arr);
System.out.println(arr[0] + " " + arr[arr.length - 1]);
}
}
2562
배열사용X
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int max=0; // 최댓값
int count =0; // 최댓값의 인덱스
for (int i = 1; i <=9 ; i++) {
int a = scan.nextInt();
if(max<a) {
max=a;
count=i;
}
}
System.out.println(max);
System.out.println(count);
}
}
배열 사용
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int max=0; //최댓값
int arr[] = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i] = scan.nextInt();
if (arr[max]<arr[i]) {
max=i;
}
}
System.out.println(arr[max]);
System.out.println(max+1);
}
}
2577
출력 결과 뜻
3 : arr[0]에 int 0 이 3번 카운트됨
1 : arr[1]에 int 1 이 1번 카운트됨
0 : arr[2]에 int 2 이 0번 카운트됨
2 : arr[3]에 int 3 이 2번 카운트됨
0 : arr[4]에 int 4 이 0번 카운트됨
0 : arr[5]에 int 5 이 0번 카운트됨
0 : arr[6]에 int 6 이 0번 카운트됨
2 : arr[7]에 int 7 이 2번 카운트됨
0 : arr[8]에 int 8 이 0번 카운트됨
0 : arr[9]에 int 9 이 0번 카운트됨
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int[] arr = new int[10];
int result = a * b * c;
while (result > 0) {
arr[result % 10]++;
result = result / 10;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
3052
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int arr[] = new int[10];
boolean bl = false;
int cnt = 0;
for (int i = 0; i < arr.length; i++) {
arr[i] = scan.nextInt() % 42;
}
for (int i = 0; i < arr.length; i++) {
bl = false;
for (int k = i + 1; k < arr.length; k++) {
if (arr[i] == arr[k]) {
bl = true;
break;
}
}
if (bl == false) {
cnt++;
}
}
System.out.println(cnt);
}
}
1546
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // N:시험 본 과목 수
double arr[] = new double[N]; // 과목 점수 담을 배열 선언초기화
for (int i = 0; i < N; i++) {
arr[i] = sc.nextDouble();
}
sc.close();
double M = arr[0]; // 최댓값 점수 담을 변수M. 일단 arr[0]의로 초기화해주고
for (int i = 1; i < N; i++) {
if (arr[1] > M) { // 새로 들어오는 점수마다 기존 arr[0]보다 크면
M = arr[i]; // 그 값으로 다시 초기화
}
}
double avg = 0;
for (int i = 0; i < N; i++) {
if (arr[i] != M) { // 최댓값이 아닌 점수들?
avg += arr[i] / M * 100;
} else {
avg += M; // ???????????여기 왜 100...?
}
}
System.out.println(avg / N);
}
}
ㄴ 왜 마지막에 else { avg += 100} 100으로 더하죠...?
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
double arr[] = new double[sc.nextInt()];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextDouble();
}
sc.close();
double sum = 0;
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
sum += ((arr[i] / arr[arr.length-1]) * 100);
}
System.out.println(sum / arr.length);
}
}
ㄴ일단 이거로 했음...
8958
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
String arr[] = new String[A]; //배열 생성
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.next();
// OOXXOXXOOO
// OOXXOOXXOO
// OXOXOXOXOXOXOX
// OOOOOOOOOO
// OOOOXOOOOXOOOOX 얘네를 입력
}
sc.close();
for (int i = 0; i < arr.length; i++) {
int count = 0; // 연속으로 O인 횟수
int sum = 0; // (연속으로 0인 횟수)의 합계
for (int j = 0; j < arr[i].length(); j++) {
if (arr[i].charAt(j) == 'O') {
count++;
// arr[0]인 상태에서 j로 한글자씩 OX결과를 돌면서
// O가 연속이면 후치
} else {
count = 0;// O가 아니면 0으로 초기화;
}
sum += count;
}
System.out.println(sum);
}
}
}
4344
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr;
int testcase = sc.nextInt();
for (int i = 0; i < testcase; i++) {
int N = sc.nextInt(); // 총 학생수
arr = new int[N];
double sum = 0; // 한 학생의 성적 총합
for (int j = 0; j < N; j++) {// 학생 반복
int score = sc.nextInt();// i=1인 학생의 점수 입력..
arr[j] = score;
sum += score;
// arr[i=1][j=1] :50
// arr[i=1][j=2] :50
// arr[i=1][j=3] :70
// arr[i=2][j=1] :100
// arr[i=2][j=2] :95
// arr[i=2][j=3] :90
}
double mean = (sum / N);// 반 평균
double count = 0; // mean을 정말 넘는 학생
// mean을 넘는 학생
for (int j = 0; j < N; j++) {// 학생 반복
if (arr[j] > mean) {
count++;
}
}
System.out.printf("%.3f%%\n",(count/N)*100);
// printf : 변수에 입력된 값을 정렬해서 출력
// "%.3%%\n"
// % : 산술연산. 나눠서 나온 나머지
// .3:소수점 4번째에서 반올림
// % : 문자열 %
// % : 앞의 %가 문자열%임을 알려주는
}
}
}
'백준 공부 > Java' 카테고리의 다른 글
단계별로 풀어보기 - 함수 java (0) | 2021.11.29 |
---|---|
단계별로 풀어보기 - while문 java (0) | 2021.11.22 |
단계별로 풀어보기 - if문, for문 java (0) | 2021.11.22 |
단계별로 풀어보기 - 입출력과 사칙연산 java (0) | 2021.11.22 |