본문 바로가기
Algorithm/백준 단계별 문제

[백준] 5. Array 배열 - Java 코드

https://www.acmicpc.net/step/6

 

1차원 배열 단계

각 숫자가 몇 번 나왔는지 저장하기 위해 일차원 배열을 만드는 문제

www.acmicpc.net

번호별로 함수 구현해두었습니다.

정답제출시에 클래스안에 함수이름을

main(String[] args)

로 변경해서 제출하시면 됩니다.

 

package 기초문법;

import java.util.Scanner;

public class _06array {

	public _06array() {
		// TODO Auto-generated constructor stub
	}
	
    public static void ex10818() {
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		int[] a = new int[n];
		for(int i=0; i<n; i++) {
			a[i] = sc.nextInt();
		}
		int min=1000000,max=-1000000;
		
		for(int i=0; i<n; i++) {
			if(a[i]<min)
				min=a[i];
			if(a[i]>max)
				max=a[i];
		}
		System.out.printf("%d %d\n",min,max);	
    
    }

    public static void ex2562() {
		Scanner sc = new Scanner(System.in);
		int n = 9;
		int[] a = new int[n];
		for(int i=0; i<n; i++) {
			a[i] = sc.nextInt();
		}
		int max=0, num=0;
		
		for(int i=0; i<n; i++) {
			if(a[i]>max) {
				max=a[i];
				num=i;
			}
		}
		System.out.printf("%d\n%d\n",max,num+1);	

    }
    
    public static void ex2920() {
		Scanner sc = new Scanner(System.in);
		int n = 8;
		int[] a = new int[n];
		for(int i=0; i<n; i++) {
			a[i] = sc.nextInt();
		}
		
		
		if(a[0]==1) {
			for(int i=0; i<n; i++) {
				if(a[i]!=i+1) {
					System.out.println("mixed");					
					return;
				}	
			}
			System.out.println("ascending");	
		}
		else if(a[0]==8) {
			for(int i=0; i<n; i++) {
				if(a[i]!=8-i) {
					System.out.println("mixed");					
					return;
				}	
			}
			System.out.println("descending");				
		}	
		else
			System.out.println("mixed");	
    }
    

    public static void ex2577() {
		Scanner sc = new Scanner(System.in);
		int[] n = new int[10];	//0으로 초기화되어있음 0~9까지 횟수카운트
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		String result = String.valueOf(a*b*c);
		for(int i=0; i < result.length(); i++) {
			int x =  result.charAt(i) -'0';
			n[x]++; 
		}
		
		for(int i=0;i<10;i++) {
			System.out.println(n[i]);	
		}
    }
    
    
    public static void ex3052() {
		Scanner sc = new Scanner(System.in);
		int[] n = new int[10];	//0으로 초기화되어있음
		int[] result = new int[42];	//0으로 초기화되어있음
        // 입력값의 42로 나눈 나머지를 저장
		for(int i=0; i < 10; i++) {
			n[i] = sc.nextInt();
			n[i] %=42; 
		}
        // 값들을 전부 결과배열에 저장
		int tmp=0;
		for(int i=0; i < 10; i++) {
			tmp = n[i];
			result[tmp]++;
		}
        // 나머지값으로 나온것 갯수파악
		int count=0;
		for(int i=0; i<42; i++) {
			if(result[i]!=0)
				count++;
		}

		System.out.println(count);
    }
    
    public static void ex1546() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		float[] score = new float[n];	//0으로 초기화되어있음
		float max =0,sum=0;
		
		
		for(int i=0; i < n; i++) {
			score[i] = sc.nextInt();
			if(max<score[i])
				max=score[i];
		}
		for(int i=0; i < n; i++) {
			score[i]=(score[i]/max)*100;
			sum+=score[i];
		}
		System.out.printf("%f",sum/n);
    }
    
    
    public static void ex8958() {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String[] input = new String[n];	//0으로 초기화되어있음
		// 입력받기
		for(int i=0; i < n; i++)
			input[i] = sc.next();		
    	for(int i=0; i < n; i++) {
    		int score=0,k=0;
    		for(int j=0; j < input[i].length(); j++) {
    			if(input[i].charAt(j)=='O') 
    				score+=++k;
    			else
    				k=0;
    		}
			System.out.println(score);
    	}
    }
    public static void ex4344() {
		Scanner sc = new Scanner(System.in);
		int C = sc.nextInt();

		for(int i=0; i < C; i++) {
			int num = sc.nextInt();	//0으로 초기화되어있음
			int score[] = new int[num];
			float sum=0, avg=0;
			for(int j=0; j<num; j++) {
				score[j]= sc.nextInt();
				sum+=score[j];
			}
			avg = sum/num;
			float count=0;
			for(int j=0; j<num; j++) {
				if(score[j]>avg)
					count+=1;
			}
			float result = (count/num) * 100;
			System.out.printf("%.3f"+"%%\n",result);		// 퍼센트 기호 출력은 %%
		}

    }
    
    
}

3052번은 저만에 방법으로 풀었어요, 효과적으로 푸는 방법은 많을것입니다.

질문받고, 오류지적도 감사합니다.