알고리즘

알고리즘이란? - 최소, 최댓, 중앙값 구하기

망재이 2023. 1. 29. 14:06
  • 알고리즘이란 : 어떤 문제를 해결하기 위한 절차로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
  • 최댓값과 최솟값을 구하는 예제를 보고 이해해보자
public static void main(String[] args)
	{
		Scanner src = new Scanner(System.in);
		
		System.out.println("세 정수의 최댓값을 구합니다.");
		System.out.println("첫번째 정수의 값 : ");int a = src.nextInt();
		System.out.println("두번째 정수의 값 : ");int b = src.nextInt();
		System.out.println("세번째 정수의 값 : ");int c = src.nextInt();
		
		int max = a;
		if(max<b) { //실행흐름을 변경하는 if문을 선택 구조라고 한다.
			max = b;
		}
		if(max<c) {
			max = c;
		}
		
		System.out.println("최댓값은 "+max+"입니다.");
		
	}
//메소드로 지정해줘도 사용하기 편하다.

static int max3(int a,int b, int c) {
		int max = a;
		if(max<b) {
			max = b;
		}
		if(max<c) {
			max = c;
		}
		return max;
	}
더보기
  1. max에 a 값을 넣는다.
  2. b값이 max보다 크면 max에 b 값을 넣는다.
  3. c값이 max보다 크면 max에 c 값을 넣는다.

세 수의 최댓값 구하기

  • 4가지 정수의 최댓값, 3가지 정수의 최솟값, 4가지 정수의 최솟값 구하기
public class P19_quiz
{

	static int max4(int a,int b,int c,int d) {
		int max = a;
		if(max<b) {
			max = b;
		}
		if(max<c) {
			max = c;
		}
		if(max<d) {
			max = d;
		}
		return max;
	}
	
	static int min3(int a,int b,int c) {
		int min = a;
		if(min>b) {
			min = b;
		}
		if(min>c) {
			min = c;
		}
		return min;
	}
	
	static int min4(int a, int b, int c, int d) {
		int min = a;
		if(min>b) {
			min = b;
		}
		if(min>c) {
			min = c;
		}
		if(min>d) {
			min = d;
		}
		return min;
	}
	
	public static void main(String[] args)
	{
		System.out.println(max4(3, 2, 4, 5));
		System.out.println(min3(2, 6, 4));
		System.out.println(min4(2, 5, 3, 6));
	}

}

  • 중앙값은 최대, 최소값을 구하는 식보다 더 까다롭다.
package 알고리즘;

import java.util.Scanner;

public class Middlevalue_1C_1
{
	static int med(int a, int b, int c) {
		if(a>=b) {
			if(b>=c) {
				return b;
			} else if(c>=a) {
				return a;
			}
		}else if(a>c) { //a는 b보다 작은 값이기 때문에 a와 c를 비교해줘야 한다.
			return a;
		}else if(b>c) {
			return c;
		}else {return b;}
		return 0;
	
	}
	
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		
		System.out.println("a:");
		int a = in.nextInt();
		System.out.println("b:");
		int b = in.nextInt();
		System.out.println("c:");
		int c = in.nextInt();
		
		System.out.println("중앙값 : "+med(a, b, c));
	}

}
728x90