알고리즘

정순동·2024년 1월 20일

알고리즘

목록 보기
1/33

간단히 3개의 수를 받아서 최대값을 출력하는 코드를 짜 보자.

3개의 수를 받는 간단한 방법은 Scanner클래스를 사용하는 방법이다.
JDK1.5( 5 ) 이전 버전이라면 I/O Stream을 이용해야 할 것이나 기본적인 사용법은 생략하도록 하자.

	class Max3 {
    	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
            
            System.out.println("세 정수의 최대값을 구합니다.");
            System.out.print("a값 입력 : "); int a = sc.nextInt()
            System.out.print("b값 입력 : "); int a = sc.nextInt()
            System.out.print("c값 입력 : "); int a = sc.nextInt()
            
            // abc를 각각 비교해서 최대값 구하기
            int max = a;
            if (b > max) 
            	max = b;
            if (c > max)
            	max = c;
                
            System.out.println("최대값은 " + max + "입니다.");
        }
    }

위 문장이 아래로 순서대로 실행되는 자바에서 이렇게 여러 문장이 순차적으로 실행되는 구조를 순차(sequential) 구조라고 한다. 위의 a = nextInt()와 같이 단순 대입을 제외하고 if문으로 ()안에 있는 식을 평가한 결과에 따라 프로그램의 실행 흐름을 변경하는 if문을 선택(selection)구조라고 합니다.

I/O 스트림과, Standard I/O(System.in/out)이 기억나지 않는다면 ↓
https://velog.io/@159jsd/%EC%9E%85%EC%B6%9C%EB%A0%A5%EA%B3%BC-%EC%8A%A4%ED%8A%B8%EB%A6%BC
https://velog.io/@159jsd/%ED%91%9C%EC%A4%80-%EC%9E%85%EC%B6%9C%EB%A0%A5Standard-IO

위 간단한 알고리즘의 실행 흐름은 a,b,c의 값에따라 달라지게 되는데, 처음 max값에 a가 들어있고 이를 b와 한번비교 하여 b가 크다면 max = b로 바꿔줍니다. 바뀌었거나 안바뀌었거나 또다시 max를 c와 비교하여 c가 max보다 크다면 c가 max값이 되어 출력에는 c의 리터럴이 들어가게 됩니다.

이런식으로 알고리즘이란

어떤 문제를 해결하기 위한 절차로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합

이라 정의할 수 있습니다.

0개의 댓글