구현 - BOJ 10431 줄 세우기

LEE ·2023년 8월 9일
0

알고리즘 기출문제

목록 보기
59/60


구현코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main{
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int k = Integer.parseInt(st.nextToken());
		int[][] arr = new int[k+1][21];
		int[] result = new int[k+1];
		int cnt = 1;
		while(cnt < k){
			int sum = 0;
			st = new StringTokenizer(br.readLine());
			cnt = Integer.parseInt(st.nextToken());
			for(int i = 1 ; i <=20 ; i++){
				arr[cnt][i] = Integer.parseInt(st.nextToken());
				int target = i;
				for(int j = (i-1); j >= 1; j--){
					if(arr[cnt][target] < arr[cnt][j]){
						sum++;
						int temp = arr[cnt][target];
						arr[cnt][target] = arr[cnt][j];
						arr[cnt][j] = temp;
						target = j;
					}else{
						break;
					}
				}
			}
			result[cnt] = sum;
		}
		for(int i = 1 ; i <= k; i++){
			System.out.println(i +" "+result[i]);
		}

	}

}

소스코드 해석 : 아이들의 키 순으로 오름차순 할 필요없이 자신보다 앞에 있는 사람들의 숫자들을 더하면 되는 문제이다.
간단한 문제이지만 저는 문제에 나오는 것 처럼 오름차순으로 정렬을 했습니다.
오름차순으로 정렬을 하면 해당 아이의 키와 이전 아이의 키와 비교해서 해당 아이의 키가 크다면 그대로 아니라면 두수의 자리를 바꾸고 count++ 해주었습니다.

0개의 댓글

관련 채용 정보