Algorithm Study/Java

[자바 기초 프로그래밍] 사용자 정의 함수

728x90
반응형

사용자 정의 함수

Java Programming Tutorial 2017 by 나동빈

링크 : https://youtu.be/YwSsMH8GX2A

 

 

세 값 중 최소값을 반환하는 함수

public class Main {

// 반환형, 함수명, 매개변수
public static int function(int a, int b, int c) {
    int min;    // 정수형 min을 정의
    if(a>b)     // if 조건에 따라 min값을 다르게 설정
    {
        if(b>c)
        {
            min = c;
        }
        else
        {
            min = b;
        }
    }
    else
    {
        if(a > c)
        {
            min = c;
        }
        else
        {
            min = a;
        }
    }
    for(int i = min; i > 0; i--)   // 초기값 i = min, i가 0보다 클 때, for문이 돌때마다 i = i-1 적용
    {
        if(a % i == 0 && b % 1 ==0 && c % 1 == 0)
        {
            return i;
        }
    }
    return -1;
}

public static void main(String[] args) {

    System.out.println("(400, 300, 750)의 최대 공약수 : " + function(400, 300, 750));

    }
}

// (400, 300, 750)의 최대 공약수 : 200

 

  • 상수를 정의할 때 사용하던 공간(class와 main 사이)에 사용자 함수를 정의한다
  • public static 이후 '반환 형태 함수명(매개변수)'를 기입한다

 

 

number의 k번째 약수를 반환하는 함수

public class Main {

    public static int function(int number, int k) {
        for(int i = 1; i < number; i++)
        {
            if(number % i == 0)
            {
                k--;
                if(k == 0)
                {
                    return i;
                }
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int result = function(3050, 10);
        if(result == -1)
        {
            System.out.println("3050dml 10번째 약수는 없습니다.");
        }
        else
        {
            System.out.println("3050의 10번째 약수는 " + result + "입니다.");
        }
    }

}
  • main도 일종의 함수로 볼 수 있고, 반환값이 없다는 의미에서 void가 사용된다

 

 

입력 값 중 마지막 단어를 반환하는 함수

public class Main {

    public static char function(String input) {
        return input.charAt(input.length() - 1);
    }

    public static void main(String[] args) {
        System.out.println("Hello World의 마지막 단어는 " + function("Hello World"));
    }
}
  • String input : function의 괄호 안에 입력되는 문자열을 읽어들이기 위해 사용
  • input.charAt(N) : input()된 값의 N번 째에 해당하는 값

 

 

세 입력값 중 가장 큰 수를 반환하는 함수

public class Main {

    public static int max(int a, int b) {
        return (a > b) ? a : b;
    }

    public static int function(int a, int b, int c) {
        int result = max(a, b);
        result = max(result, c);
        return result;
    }

    public static void main(String[] args) {
        System.out.println("(345, 567, 789) 중에서 가장 큰 값은 " + function(345, 567, 789));

    }
}
  • (a > b) ? a : b : 조건(괄호)를 만족한다면 a, 만족하지 못한다면 b를 선택하게 됨 - 삼항연산자