세 값의 최댓값 구하기
package ch01_1;
import java.util.Scanner;
// 3개의 정숫값 입력하고 최댓값 출력하기
public class Ex01_max3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
int max = a;
if (b > max)
max = b;
if (c > max)
max = c;
System.out.println("최댓값 => " + max);
}
}
세 값의 최댓값 구하는 메서드 만들기
package ch01_1;
// 3개의 정숫값 가운데 최댓값 출력하기
public class Ex02_max3Method {
// a, b, c의 최댓값 반환하는 메서드
static int max(int a, int b, int c) {
int max = a;
if (b > max)
max = b;
if (c > max)
max = c;
return max;
}
public static void main(String[] args) {
System.out.println("3,2,1 => " + max(3, 2, 1));
System.out.println("3,2,2 => " + max(3, 2, 2));
System.out.println("3,1,2 => " + max(3, 1, 2));
System.out.println("3,2,3 => " + max(3, 2, 3));
System.out.println("2,1,3 => " + max(2, 1, 3));
System.out.println("3,3,2 => " + max(3, 3, 2));
System.out.println("3,3,3 => " + max(3, 3, 3));
System.out.println("2,2,3 => " + max(2, 2, 3));
System.out.println("2,3,1 => " + max(2, 3, 1));
System.out.println("2,3,2 => " + max(2, 3, 2));
System.out.println("1,3,2 => " + max(1, 3, 2));
System.out.println("2,3,3 => " + max(2, 3, 3));
System.out.println("1,2,3 => " + max(1, 2, 3));
}
}
연습문제_네 값의 최댓값 구하는 메서드
package ch01_1;
import java.util.Scanner;
public class Ex03_max4Method {
// 네 값의 최대값 구하는 메서드
static int max(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) {
System.out.println("1, 2, 3, 4 => " + max(1, 2, 3, 4));
System.out.println("5, 7, 3, 2 => " + max(5, 7, 3, 2));
System.out.println("2, 9, 3, 7 => " + max(2, 9, 3, 7));
System.out.println("3, 2, 4, 4 => " + max(3, 2, 4, 4));
System.out.println("5, 7, 6, 4 => " + max(5, 7, 6, 4));
// 직접 입력받기
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
int d = scan.nextInt();
System.out.println(a + ", " + b + ", " + c + ", " + d + " => " + max(a, b, c, d));
}
}
연습문제_세 값의 최솟값 구하는 메서드
package ch01_1;
import java.util.Scanner;
public class Ex04_min3Method {
// 세 값의 최솟값을 구하는 메서드
static int min(int a, int b, int c) {
int min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
public static void main(String[] args) {
System.out.println("1, 2, 3 => " + min(1, 2, 3));
System.out.println("2, 3, 1 => " + min(2, 3, 1));
System.out.println("3, 2, 1 => " + min(3, 2, 1));
System.out.println("1, 1, 3 => " + min(1, 1, 3));
System.out.println("2, 3, 3 => " + min(2, 3, 3));
// 직접 입력받기
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
System.out.println(a + ", " + b + ", " + c + " => " + min(a, b, c));
}
}
연습문제_네 값의 최솟값 구하는 메서드
package ch01_1;
import java.util.Scanner;
public class Ex05_min4Method {
// 네 값의 최솟값을 구하는 메서드
static int min(int a, int b, int c, int d) {
int min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
public static void main(String[] args) {
System.out.println("1, 2, 3, 4 => " + min(1, 2, 3, 4));
System.out.println("2, 3, 1, 5 => " + min(2, 3, 1, 5));
System.out.println("3, 2, 1, 4 => " + min(3, 2, 1, 4));
System.out.println("1, 1, 3, 2 => " + min(1, 1, 3, 2));
System.out.println("2, 3, 3, 1 => " + min(2, 3, 3, 1));
// 직접 입력받기
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
int d = scan.nextInt();
System.out.println(a + ", " + b + ", " + c + ", " + d + " => " + min(a, b, c, d));
}
}
3개의 정숫값을 입력하고 중앙값 구하기
package ch01_1;
import java.util.Scanner;
// 3개의 정숫값을 입력하고 중앙값 출력
public class Ex06_median {
static int med(int a, int b, int c) {
if (a >= b) {
if (b >= c) {
return b;
} else if (a <= c) {
return a;
} else {
return c;
}
} else if (a > c) {
return a;
} else if (b > c) {
return c;
} else {
return b;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
System.out.println(a + "," + b + "," + c + " => " + med(a, b, c));
}
}
연습문제_세 값의 대소관계인 13가지 조합의 중앙값 구하여 출력
package ch01_1;
// 세 값의 대소관계인 13가지 조합의 중앙값 구하여 출력
public class Ex07_median13 {
static int med(int a, int b, int c) {
if (a >= b) {
if (b >= c) {
return b;
} else if (a <= c) {
return a;
} else {
return c;
}
} else if (a > c) {
return a;
} else if (b > c) {
return c;
} else {
return b;
}
}
public static void main(String[] args) {
System.out.println("3,2,1 => " + med(3, 2, 1)); // a>b>c
System.out.println("3,2,2 => " + med(3, 2, 2)); // a>b=c
System.out.println("3,1,2 => " + med(3, 1, 2)); // a>c>b
System.out.println("3,2,3 => " + med(3, 2, 3)); // a=c>b
System.out.println("2,1,3 => " + med(2, 1, 3)); // c>a>b
System.out.println("3,3,2 => " + med(3, 3, 2)); // a=b>c
System.out.println("3,3,3 => " + med(3, 3, 3)); // a=b=c
System.out.println("2,2,3 => " + med(2, 2, 3)); // c>a=b
System.out.println("2,3,1 => " + med(2, 3, 1)); // b>a>c
System.out.println("2,3,2 => " + med(2, 3, 2)); // b>a=c
System.out.println("1,3,2 => " + med(1, 3, 2)); // b>c>a
System.out.println("2,3,3 => " + med(2, 3, 3)); // b=c>a
System.out.println("1,2,3 => " + med(1, 2, 3)); // c>b>a
}
}
연습문제_아래의 메소드가 Ex06_median보다 효율이 떨어지는 이유
package ch01_1;
// 아래의 메소드가 Ex06_median보다 효율이 떨어지는 이유
public class Ex08_median {
static int med(int a, int b, int c) {
/*
* if ((b >= a && c<= a) || (b <= a && c >= a)
* 여기서 b >= a 및 b <= a의 판단을 뒤집은 판단 (실질적으로 동일한 판단)이
* 계속하여 else if ((a > b && c < b) || (b <= a && c > b) 로 수행됨
* 즉, 처음 if가 성립하지 않는 경우 2번째 if에서도 같은 판단을 수행하므로 효율이 나빠짐
*/
if ((b >= a && c <= a) || (b <= a && c >= a)) {
return a;
} else if ((a > b && c < b) || (a < b && c > b)) {
return b;
} else {
return c;
}
}
public static void main(String[] args) {
System.out.println("3,2,1 => " + med(3, 2, 1)); // a>b>c
System.out.println("3,2,2 => " + med(3, 2, 2)); // a>b=c
System.out.println("3,1,2 => " + med(3, 1, 2)); // a>c>b
System.out.println("3,2,3 => " + med(3, 2, 3)); // a=c>b
System.out.println("2,1,3 => " + med(2, 1, 3)); // c>a>b
System.out.println("3,3,2 => " + med(3, 3, 2)); // a=b>c
System.out.println("3,3,3 => " + med(3, 3, 3)); // a=b=c
System.out.println("2,2,3 => " + med(2, 2, 3)); // c>a=b
System.out.println("2,3,1 => " + med(2, 3, 1)); // b>a>c
System.out.println("2,3,2 => " + med(2, 3, 2)); // b>a=c
System.out.println("1,3,2 => " + med(1, 3, 2)); // b>c>a
System.out.println("2,3,3 => " + med(2, 3, 3)); // b=c>a
System.out.println("1,2,3 => " + med(1, 2, 3)); // c>b>a
}
}
정숫값 부호 판단
package ch01_1;
import java.util.Scanner;
public class Ex09_judgeSign {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("정수를 입력하세요 => ");
int n = scan.nextInt();
if(n>0) {
System.out.println("이 수는 양수입니다.");
} else if(n<0) {
System.out.println("이 수는 음수입니다.");
} else {
System.out.println("이 수는 0입니다.");
}
}
}
ABC 출력 else
package ch01_1;
import java.util.Scanner;
public class Ex10_judgeABC1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("정수를 입력하세요 => ");
int n = scan.nextInt();
if(n == 1) {
System.out.println("A");
} else if(n == 2) {
System.out.println("B");
} else {
System.out.println("C");
}
}
}
ABC 출력 else if
package ch01_1;
import java.util.Scanner;
public class Ex11_judgeABC2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("정수를 입력하세요 => ");
int n = scan.nextInt();
if(n == 1) {
System.out.println("A");
} else if(n == 2) {
System.out.println("B");
} else if(n == 3) {
System.out.println("C");
}
// 아무 작업도 하지 않는 else가 숨어있음
else;
}
}
3항 연산자
// x와 y중 큰 값을 a에 대입
a = (x > y) ? x : y;
// c가 0이면 전자, 0이 아니면 후자 출력
System.out.println((c == 0) ? "c는 0" : "c는 0이 아님");
'공부기록 > 알고리즘' 카테고리의 다른 글
Chapter 03-2. 검색 알고리즘_선형 검색 (0) | 2024.08.04 |
---|---|
Chapter 03-1. 검색 알고리즘_검색 알고리즘이란 (0) | 2024.08.04 |
Chapter 02-2. 기본 자료구조_클래스란 (0) | 2024.06.22 |
Chapter 02-1. 기본 자료구조_배열이란 (0) | 2024.06.22 |
Chapter 01-2. 기본 알고리즘_반복 (2) | 2023.11.19 |
댓글