본문 바로가기

IT개념/정보처리산업기사

[정처산기] 알고리즘 - 석차구하기

728x90

문제
5명의 석차를 구하는 순서도를 작성하시오.

 

방법 1

    public static void main(String[] args) {

    int n=1;
    int jumsu[] = {80, 70, 90, 100, 65};
    int rank[] = new int[5];

    for(int i=0; i<5; i++) {
        n=1;
        for(int j=0; j<5; j++) {
            if(jumsu[i] < jumsu[j]) {
                n++;
            } 
            rank[i]=n;
        }

        System.out.println(jumsu[i] + "점 등수 : " + rank[i]);
    }

}

<br/>

석차배열을 따로 만들어 n값을 입력해주어 등수를 출력한다.

 

 

방법 2

    public static void main(String[] args) {

    int jumsu[] = {80, 70, 90, 100, 65};
    int rank=1;

    for(int i=0; i<5; i++) {
        rank=1;
        for(int j=0; j<5; j++) {
            if(jumsu[i] < jumsu[j]) {
                rank++;
            } 

        }

        System.out.println(jumsu[i] + "점 등수 : " + rank);
    }

}

석차배열을 따로 만들지 않고 변수를 직접 출력한다.

 

방식에 큰 차이점은 없으나 기출문제에는 두가지 방법이 나왔으니 정리한다.

 

 

	public static void main(String[] args) {
		
		int n=5;
		int jumsu[] = {80, 70, 90, 100, 65};
		int rank[] = new int[5];
		
		for(int i=0; i<5; i++) {
			n=5;
			for(int j=0; j<5; j++) {
				if(jumsu[i] > jumsu[j]) {
					n--;
				} 
				rank[i]=n;
			}
			
			System.out.println(jumsu[i] + "점 등수 : " + rank[i]);
		}

	}

석차에 최대값을 주고

비교값이 대상값보다 클 경우

석차를 1씩 가감해주는 방법도 있다.