티스토리 뷰

10818. 최소, 최대

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int min, max;
		int n = sc.nextInt();
		int []arr = new int[n];
		
		min = 1000000;
		max = -1000000;
		
		for(int i=0; i<n; i++) {
			arr[i] = sc.nextInt();
			if(min>arr[i]) min=arr[i];
			if(max<arr[i]) max=arr[i];
		}		
		
		System.out.println(min+" "+max);
	}

}

 

02562. 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하시오.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int max, idx;
		int []arr = new int[9];
		
		idx = -1;
		max = -1;
		
		for(int i=0; i<9; i++) {
			arr[i] = sc.nextInt();
			if(max<arr[i]) {
				max=arr[i];
				idx=i+1;
			}
		}		

		System.out.println(max);
		System.out.println(idx);
	}

}

 

02577. 숫자의 개수

세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int []arr = new int[3];
		int []num = new int[10];

		for(int i=0; i<3; i++) {
			arr[i] = sc.nextInt();
		}		
		
		int result = arr[0] * arr[1] * arr[2];
		int temp;

		while(result!=0) {
			temp = result%10;
			num[temp]++;
			result/=10;
		}
		
		for(int i : num) {
			System.out.println(i);
		}
	}

}

 

03052. 나머지

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num[] = new int[10];
		int arr[] = new int[42];
		int temp, cnt=0;
		
		for(int i=0; i<10; i++) {
			num[i] = sc.nextInt();
			temp = num[i]%42;
			arr[temp]++;
		}
		
		for(int i:arr) {
			if(i!=0) cnt++;
		}
		
		System.out.println(cnt);
		
	}

}

 

01546. 평균

점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.

예를 들어, 최고점이 70이고, 수학점수가 50이었으면 수학 점수는 50/70*100이 되어 71.43점이 된다. 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		float []arr = new float[n];
		float max=0, sum=0;
		
		for(int i=0; i<n; i++) {
			arr[i] = sc.nextFloat();
			if(max<arr[i]) max=arr[i];
		}
		
		for(int i=0; i<n; i++) {
			arr[i] = arr[i]/max*100;
			sum+=arr[i];
		}
		
		System.out.printf("%f\n", sum/n);

	}

}

 

08958. OX사이클

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int []score = new int[n];
		String []str = new String[n];
		
		sc.nextLine(); 	//버퍼지우기
		int cnt=0;	//연속 횟수 확인용
		int temp=0;	//획득한 점수
		
		
		for(int i=0; i<n; i++) {
			str[i] = sc.nextLine();
			for(int j=0; j<str[i].length(); j++) {
				if(str[i].charAt(j)=='O') {
					cnt++;
					temp+=cnt;
				}else {
					score[i]+=temp;
					cnt=0; temp=0;
				}
			}
			if(temp!=0) {
				score[i]+=temp;
				cnt=0; temp=0;
			}
		}
		
		for(int i:score) {
			System.out.println(i);
		}
	}
}

 

04344. 평균은 넘겠지

첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. (1 ≤ 점수 ≤ 100)

 

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		float []res = new float[n];	//평균 넘는 학생 비율
        
		int cnt;	//학생 수
		int sum=0;	//학생 점수의 합
		float avg;	//학생 점수의 평균
		int num=0;	//평균을 넘는 학생의 수
		
		for(int i=0; i<n; i++) {
			cnt = sc.nextInt();
			int []arr = new int[cnt];
			for(int j=0; j<cnt; j++) {
				arr[j] = sc.nextInt();
				sum+=arr[j];
			}
			avg = sum/(float)cnt;
			for(int j=0; j<cnt; j++) {
				if(avg<arr[j]) num++;
			}
			//res에 저장 : 결과가 실수여야하므로 형변환
			res[i]=(num/(float)cnt)*100;
			//사용한 변수 초기화
			sum=0; num=0;
		}
		
		for(float i : res) {
			System.out.printf("%.3f%%\n",i);
		}
	}

}

 

 

 


 

dev-ku/Java

JAVA 공부. Contribute to dev-ku/Java development by creating an account on GitHub.

github.com

 

댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday