1장. 기본 알고리즘 (작성중)

해니·2021년 8월 16일
0

01-1. 알고리즘이란?

세 값의 최댓값

<실습 1-1>

  1. Scanner 객체를 통해 정수 값을 입력 받는다.
    1-1. 총 세 번 Scanner 객체의 표준 입력 스트림(System.in)을 통해 키보드에서 정수값을 입력 받는다.
    1-1. 처음 입력 받은 정수값을 변수 a에 대입한다.
    1-2. 두 번째 입력 받은 정수값을 변수 b에 대입한다.
    1-3. 세 번째 입력 받은 정수값을 변수 c에 대입한다.

  2. 세 정수의 값을 비교한다.
    2-1. 최대값(변수 max)에 a의 값을 대입한다.
    2-2. b의 값과 최댓값을 비교한다. 최댓값 보다 b의 값이 큰 경우 max 변수에 b의 값을 대입한다.
    2-3. c의 값과 최댓값을 비교한다. 최댓값 보다 c의 값이 큰 경우 max 변수에 c의 값을 대입한다.

  3. 최댓값(변수 max의 값)을 출력한다.

class Max {
	public static void main(String[] args){
    
    	Scanner sc = new Scanner(System.in);
        System.out.println("세 수의 최댓값을 구합니다.");
        
        System.out.println("a:");
        int a = sc.nextInt();
        System.out.println("b:");
        int b = sc.nextInt();
        System.out.println("c:");
        int c = sc.nextInt();
        
        int max = a;
       	
        if(b>max){
        	max = b;
        }
        
        if(c>max){
        	max = c;
        }
        
        System.out.println("최댓값:"+max);
        
        
        
    }
}

<실습 1-2>

  1. a, b, c의 최댓값을 구하여 반환하는 메서드를 만든다.
    1-1.세 개의 정수형 데이터를 매개변수로 받고 정수형 데이터를 리턴하는 메서드를 만든다.
    1-2. 변수 max에 변수 a를 대입한다.
    1-3. 변수 b와 변수 max를 비교한다. b가 max 보다 크다면 max에 b를 대입한다.
    1-4. 변수 c와 변수 max를 비교한다. c가 max 보다 크다면 max에 c를 대입한다.
    1-5. 변수 max를 반환한다.
  2. main 메서드에서 1의 메서드를 호출한다.

class max3 {
	
    public static int max3(int a, int b, int c){
    	
        max = a;
        
        if(b>max){
        	max = b;
        }
        
        if(c>max){
        	max = c; 
        }
       
      return max;
        
    }
    
    public static void main(String[] args){
    	
        int max = 0 ;
    	max = max3(2,5,4);
        System.out.println("최댓값:"+max);
    
    }
    
    
}

<연습문제>
-main 메서드를 포함한 프로그램 작성

Q1.네 값의 최댓값을 구하는 max4 메서드를 작성하세요.
static int max4(int a, int b, int c, int d)

  1. max4 메서드에서 최댓값을 담을 변수 max에 변수 a를 대입한다.
    1-1. 변수 max와 변수 b의 값을 비교한다. b의 값이 max 보다 큰 경우 max에 b를 대입한다.
    1-2. 변수 max와 변수 c의 값을 비교한다. c의 값이 max 보다 큰 경우 max에 c를 대입한다.
    1-3. 변수 max와 변수 d의 값을 비교한다. d의 값이 max 보다 큰 경우 max에 d를 대입한다.
    1-4. 변수 max 값을 리턴한다.
  2. main 메서드에서 최댓값을 담을 변수 max를 선언한다.
  3. main 메서드에서 max4 메서드를 호출 후, 반환값을 변수 max에 대입한다.
  4. main 메서드에서 max를 출력한다.

public class Max4 {
	
	public static int max4(int a, int b, int c, int d) {
		
		int max = a;
		
		if(b>max) {
			max = b;
		}

		if(c>max) {
			max = c;
		}
		
		if(d>max) {
			max = d;
		}
		
		return max;
		
		
	}
	
	public static void main(String[] args) {
		
		int max = 0;
//		max = max4(5,77,45,4); //77
		max = max4(5,8,45,4); // 45 
		System.out.println("최댓값:"+max);

	}

}

Q2. 세 값의 최솟값을 구하는 main3 메서드를 작성하세요.
static int min3(int a, int b, int c)

  1. main3 메서드에서 최솟값을 담을 변수 min에 변수 a를 대입한다.
    1-1. 변수 min과 변수 b를 비교하다. b가 min보다 작다면 min에 b를 대입한다.
    1-2. 변수 min과 변수 c를 비교한다. c가 min보다 작다면 min에 c를 대입한다.
    1-3. 변수 min을 반환한다.
  2. main 메서드에서 최솟값을 담을 변수 min을 선언한다.
    2-1. main3 메서드를 호출 후 반환값을 변수 min에 대입한다.
    2-2. 변수 min을 출력한다.
public class Min3 {
	
	static int min3(int a, int b, int c) {
		
		int min = a;
		
		if(b<min) {
			min = b;
		}
		
		if(c<min) {
			min = c;
		}
		
		return min;
		
	}
	
	public static void main(String[] args) {
	
		int min = 0 ;
		min = min3(7,8,56); // 7
		min = min3(7,8,5); // 5
		System.out.println("최솟값:"+min);
	}

}

Q3. 네 값의 최솟값을 구하는 main4 메서드를 작성하세요.

static int min4(int a, int b, int c, int d)

  1. min4 메서드에서 최솟값을 담을 변수 min에 변수 a를 대입한다.
    1-1. 변수 min과 변수 b를 비교한다. b가 min 보다 작을 경우, min에 b를 대입한다.
    1-2. 변수 min과 변수 c를 비교한다. c가 min 보다 작을 경우, min에 c를 대입한다.
    1-3. 변수 min과 변수 d를 비교한다. d가 min 보다 작을 경우, min에 d를 대입한다.
    1-4. 변수 min을 반환한다.
  2. main 메서드에서 min4 메서드를 호출 후 반환 값을 변수 min에 대입한다.
    2-1. 변수 min을 출력한다.

public class Min4 {
	
	static int min4(int a, int b, int c, int d) {
		
		int min = a;
		
		if(b<min) {
			min = b;
		}
		
		if(c<min) {
			min = c;
		}
		
		if(d<min) {
			min = d;
		}
		
		return min;
		
	}
	
	public static void main(String[] args) {
		
//		int min = min4(4,8,9,45); // 4
		int min = min4(3,8,9,3);  // 3 
		System.out.println("최솟값:"+min);
		
	}

}

세 값의 중앙값

<실습 1C-1>

가장 큰 값을 마지막에 비교 ..?

  1. med3 메소드에서 변수 a와 변수 b의 값을 비교한다.
    1-1. 변수 a가 변수 b보다 같거나 크다면, 변수 b와 변수 c를 비교한다.
    1-1-2. 변수 b가 c보다 같거나 크다면 변수 b를 반환한다.

    1-2. 변수 a가 변수 b보다 작다면, 변수 a와 변수 c를 비교한다.
    1-2-1. 변수 a가 변수 c 보다 작다면 변수 c를 반환한다.

0개의 댓글