개키우는개발자 : )

[자바 알고리즘] 나이 차이 본문

Algorithm Programming/Java

[자바 알고리즘] 나이 차이

DOGvelopers 2020. 1. 7. 13:26
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

 

| 문제

N(2<=N<=100)명의 나이가 입력됩니다. 이 N명의 사람 중 가장 나이차이가 많이 나는 경우는 몇 살일까요? 최대 나이 차이를 출력하는 프로그램을 작성하세요.

 

| 입력설명

자연수 N(2<=N<=100)이 입력되고, 그 다음 줄에 N개의 나이가 입력된다.

 

| 출력설명

최대 나이차이를 출력합니다.

 

| 입력 예제

10

13 15 34 23 45 65 33 11 26 42

 

| 출력 예제

54

 

| 풀이

 

int의 자료형 max = -2,147,483,648 , min = 2,147,483,647 초기화,

입력된 나이가 max 랑 비교하여 가장큰값이 max에 할당되고 가장 작은값이 min값에 할당 후 빼주면 됨

 

- 첫번째

그냥 나이를 담아서 비교후 계산 , 하지만 나이를 한명한명 입력하는건 배열에 굳이 담을 필요가 없음

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n,i,j,age,max=-2147000000,min=2147000000;
        System.out.println("인원수 입력");
        n = sc.nextInt();
        int[] ages = new int[n];
        for(i=0;i<n;i++){
            System.out.printf("나이 입력 %d ",i+1);
            int num = sc.nextInt();
            ages[i] = num;
        }

        for(j = 0;j < ages.length; j++){
            age = ages[j];
            if(age > max) max = age;
            if(age<min) min = age;
        }
        System.out.printf("%d",max - min);
    }
}

- 두번째

그냥 입력되는값을 비교하여 계산하면 됨

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n,i,j,age,max=-2147000000,min=2147000000;
        System.out.println("인원수 입력");
        n = sc.nextInt();
        for(i=0;i<n;i++){
            System.out.printf("나이 입력 %d ",i+1);
            int num = sc.nextInt();
            if(num > max) max = num;
            if(num<min) min = num;
        }
        System.out.printf("%d",max - min);
    }
}

- 세번째

 

초기값이 주어져 있을 때

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i,age,max=-2147000000,min=2147000000;
        int[] ages = {13, 15, 34, 23, 45, 65, 33, 11, 26, 42};
        for(i = 0;i < ages.length; i++){
            age = ages[i];
            if(age > max) max = age;
            if(age<min) min = age;
        }
        System.out.printf("%d",max - min);
    }
}

 

결과

반응형
Comments