- 22.06.20(월요일)
알고리즘
유클리드 호제법(최대공약수)
가우스 소거법(방정식)
사디리꼴 법칙(정적분)
데이크스트라 알고리즘(최적 경로)
에라토스테네스의 체(소수)
2. 정렬
버블 정령 / 선택 정렬 / 삽입 정렬 / 셀 정령 / 병합 정렬 / 퀵 정렬
3.검색
선형 검색 / 이진 검색
4.문자열 패턴 매칭
단순 문자열 일치 / KMP알고리즘 / BM 알고리즘
반복문 복습
package 반복문;
public class notice {
public static void main(String[] args){
// 2중 for 문 for(초기식; 종료식; 증감식;)
int i = 0;
for(;;) {
System.out.println(i);
i++;
if(i >= 100)break;
}
System.out.println();
}
}
int i = 0;
for(;;) { // ;; 초기식,종료식,증감식이 들어간 뜻
System.out.println(i);
package 반복문;
public class notice {
public static void main(String[] args){
// // 2중 for 문 for(초기식; 종료식; 증감식;)
int i = 0;
while(true) {
System.out.println(i);
i++;
if(i >= 100)break;
}
}
}
for(;;) = while(true) : 거의 동일하다 (사람마다 취향차이)
for(초기식; 최종식; 증감식;)
2중 for문으로 별찍기
package 반복문;
public class notice {
public static void main(String[] args){
for(int i = 0; i < 10; i++) {
System.out.printf("|i=%d|", i);
for(int j =0; j<10; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
2중 for문 별찍기 (삼각형)
package 반복문;
public class notice {
public static void main(String[] args){
for(int i = 0; i < 10; i++) {
System.out.printf("|i=%d|", i);
for(int j =0; j<i+1; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
2중 for문 역삼각형
package 반복문;
public class notice {
public static void main(String[] args){
for(int i = 5; i >= 0; i--) {
System.out.printf("|i=%d|", i);
for(int j =0; j<=i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
2중 for문 피라미드 삼각형
2중 for문 구구단
package 반복문;
public class notice {
public static void main(String[] args){
for(int i = 2; i < 10; i++) {
for(int j =1; j< 10; j++) {
System.out.printf("%d X %d = %d\n",i,j, (i*j));
}
System.out.println(); // 줄 바꿈
}
}
}
2중 for문 및 if 조건문 응용
// 키보드로부터 정수 입력
// 1과 자기자신 이외의 수로는 소수가 아니다로 출력 / 나머지가 0이면 소수로 출력 / 정수 2도 또한 소수가 아니다로 출력
- My coding -
package 반복문;
import java.util.Scanner;
public class notice {
public static void main(String[] args) {
// 키보드로부터 정수 입력
// 1과 자기자신 이외의 수로는 소수로 출력 / 나머지가 0이면 소수로 출력
Scanner sc = new Scanner(System.in);
System.out.print(" 정수를 입력하세요 : ");
int num = sc.nextInt();
int num1 = 2;
for (int i = num; i%2 == 1;i++ ) {
System.out.print(" 소수 입니다 ");
}
for (int j = num; j%2 == 0;j++ ) {
if(num1 == j){
System.out.print("소수 입니다");
}else
System.out.print(" 소수가 아닙니다");
}
}
}
- 선생님 방법 -
package 반복문;
import java.util.Scanner;
public class notice2 {
public static void main(String[] args) {
// 키보드로부터 정수 입력
// 1과 자기자신 이외의 수로는 소수로 출력 / 나머지가 0이면 소수로 출력
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
boolean isPrime = true; // 소수여부 판단하는 타입
for(int i =2; i<n; i++){ // 2부터 자신 미만까지 반복
if(n%i==0) {
System.out.println("소수 아닙니다");
isPrime = false;
break; // boolean을 사용해서 break; 가 포함되어야 한다.
}
}
if (isPrime) System.out.println("소수 입니다. ");
}
}
" boolean " // 참,거짓을 판별하기 위해 쓰임 / ture의 나온 값에 반대 개념으로 false로 생각하면 편함
배열
package 배열;
import java.util.Arrays;
public class practice220620 {
public static void main(String[] args){
// int[] arr1 = {1,2,3,4,5}; // 선언과 동시에 배열에 값을 대입하는 경우
int[] score = new int[3]; // score라는 참조형 변수는 int형으로 만들어진 3개의 연속된 공간을 가리킨다
score[0] = 99; // [0] = 대괄호 안에 해당되는 " 0 "은 index 값이라고 한다.
score[1] = 88;
score[2] = 77;
for(int i = 0; i<score.length; i++) {
System.out.print(score[i] + " ");
}
System.out.println();
for(int i : score) { // 향상된 for문
System.out.print(i+ " ");
}
System.out.println();
String[] city = {"Seoul", " Busan", "Inchun", "Daegu"};
for(String i : city){
System.out.print(i+" ");
}
System.out.println();
System.out.println(Arrays.toString(city));
}
}
배열로 총점 및 평균 나타내기
package 배열;
import java.util.Arrays;
public class practice220620 {
public static void main(String[] args) {
int[] score = {89,99,88,77};
int sum = 0;
for(int val : score) sum += val; // 요소의 값을 더해서 sum에 누적시킴
System.out.println("총점은 : "+sum);
System.out.printf("평균 : %.2f\n", (double)sum/score.length);
}
}
2차원 배열
package 배열;
import java.util.Arrays;
public class practice220620 {
public static void main(String[] args) {
int[][] arr = {
{10,20,30},
{40,50,60}
};
for(int i=0; i<arr.length; i++) { // arr.length = 2 [(10,40) /(20,50) / (30,60)]
for(int j=0; j< arr[i].length; j++) { // arr[i].length = 3
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
System.out.println(Arrays.toString(arr[0]));
System.out.println(Arrays.toString(arr[1]));
for(int[]i :arr) { // 향상된 for문
for(int j :i) {
System.out.print(j+ " ");
}
System.out.println();
}
}
배열 정렬
package 정렬;
// 버블 정렬 연습
// 순차 정렬 연습
public class practice220620 {
public static void main(String[] avgs){
int[] arr = {9,4,3,10,5,8,7,6,2,1};
int tmp = 0; // 임시 저장소
for(int i=0; i<arr.length;i++){
for(int j =i; j<arr.length; j++){
if(arr[i] > arr[j]) {
tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
for(int i : arr)System.out.print(i+ " ");
}
}
2차원 배열 후 순차배열 코드
package 배열;
import java.util.Arrays;
public class practice220620 {
public static void main(String[] args) {
double[] avr = {0, 0, 0, 0, 0, 0}; // 각 학생의 평균을 구해서 저장
int[][] score = {
{1, 30, 89, 45, 0}, // 학번, 국어, 영어, 수학, 총점(//총점을 모르기 때문에 0점을 넣는다)
{2, 80, 88, 98, 0},
{3, 100, 89, 97, 0},
{4, 56, 78, 45, 0},
{5, 98, 56, 78, 0},
{6, 34, 45, 67, 0}
};
for (int i = 0; i < score.length; i++) {
for (int j = 1; j < 4; j++) { //j<4 총점을 제외한 모든 점수를 본다
score[i][4] += score[i][j]; // score[i][4] = score[i][4]+score[i][j]
}
avr[i] = (double) score[i][4] / 3; //3과목에 대한 평균
System.out.printf("%d %d %.2f\n", score[i][0], score[i][4], avr[i]);
}
int tmpNum = 0; // 학번 정렬
int tmpTotal = 0; // 총점 정렬
double tmpAvr = 0; // 평균 정렬
System.out.println("\t번호\t\t총점\t\t평균");
System.out.println("--------------------------");
for(int i = 0; i< score.length; i++) {
for(int j=i; j< score.length; j++) {
if(score[i][4] < score[j][4]){
tmpTotal = score[i][4];
score[i][4] = score[j][4];
score[j][4] = tmpTotal;
tmpNum = score[i][0];
score[i][0] = score[j][0];
score[j][0] = tmpNum;
tmpAvr = avr[i];
avr[i] = avr[j];
avr[j] = tmpAvr;
}
}
System.out.printf("\t%d\t\t%d\t\t%.2f\n", score[i][0],score[i][4],avr[i]);
}
String 문자열
// equals() : 문자열을 비교하는 내장 메소드
// indexOf() : 문자열에서 특정 문자가 시작되는 인덱스를 리턴
// contains() :문자열에서 특정 문자열이 포함되어 있는지의 여부를 리턴
// charAt() : 문자열에서 특정 위치의 문자를 리턴
// replaceAll() : 문자열 중 특정 문자열을 다른 문자열로 바꾸고자 할 때 사용
// subString() : 문자열 중 특정 부분을 뽑아낼 경우에 사용한다.
// split() : 문자열을 특정 구분자로 분리하는 메소드이다.
String 문자열 문제
//2개의 문자열을 입력받음 (s,k)
// s문자열의 뒤부분에 n개 문자를 k문자열에 끼워 넣음
// 정수를 입력받음
// s: Seoul / k : Korea
// n: 2
// result : ulkorea
package String;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("s 문자열 입력 : ");
String s = sc.next();
System.out.print(" k 문자열 입력 : ");
String k = sc.next();
System.out.print("정수 입력 : ");
int n = sc.nextInt();
int pos = s.length()-n;
String sub = s.substring(pos);
System.out.println(sub+k);
}
}
복습 문제
for 별찍기 예제 및 다른 예제 / 2차원 배열 문제 / String 문자열 문제 (각 3문제씩)
- 22.06.21(화요일)
복습
toCharArray()
문자열을 문자 배열로 반환 합니다.
문자열 문제
//영어 소문자와 대문자로 이루어진 단어를 입력 받은 후
// 대문자는 소문자로..
// 소문자는 대문자로 변경하는 프로그램 작성
// 입력 : AbCdEf
// 출력 : aBcDeF
package String;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print(" 알파벳을 무작위로 작성하세요 : ");
String input = sc.nextLine();
char[]word = input.toCharArray(); // 문자열을 문자 배열로 변환
for(int i=0; i<word.length; i++){
// 대문자 'A'가 'a' 작으면
if(word[i] < 'a') word[i] = (char)(word[i] +('a' - 'A'));
else word[i] = (char)(word[i]-('a'-'A'));
}
System.out.println(word);
}
}
문자열 예제
// 10개의 배열을 생성하고 중복된 값이 존재하도록 생성
// 1,2,3,4,5 / 1,2,3,4,5
// 입력 : 배열내에 전재하는 임의의 숫자 입력
// 임의의 숫자가 2번재 나타나는 위치를 확인하는 프로그램
// 만약 찾고자 하는 숫자가 없는 경우 -1로 출력
package String;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5};
int cnt = 0;
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
int n = sc.nextInt();
for (int i = 0; i < arr.length; i++) {
if (arr[i] == n) {
cnt++;
if (cnt == 2) {
System.out.println(i + 1);
break;
}
}
}
if (cnt == 0) System.out.println("-1");
}
}
문자열 예제
// 사용자에 의해 2개의 문자열을 입력 받음
// 처음부터 2개의 문자열을 비교해 공통의 글자가 몇 개인지 확인합니다.
// 공통 부분 문자열과 길이를 출력 합니다.
// 공통된 문자열이 없으면 " No CS"로 입력합니다.
package String;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int cnt = 0;
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 문자열 : ");
String a = sc.next();
System.out.print("두번째 문자열 : ");
String b = sc.next();
for (int i = 0; i < a.length(); i++) {
if (a.charAt(i) == b.charAt(i)) {
System.out.print(a.charAt(i));
cnt++;
} else break;
}
System.out.println();
if(cnt !=0) System.out.println(cnt);
else System.out.println("No CS");
}
}
클래스
package 클래스;
public class Main {
public static void main(String[] args) {
Car santafe = new Car("santafe","Gary",2020,250,220);
Car sorento = new Car("sorento","Black",2020,250,220);
santafe.viewCar();
sorento.viewCar();
}
}
class Car {
String name;
String color;
int productYear;
int horsePower;
int maxSpeed;
Car(String name, String color, int year, int power, int speed) { //생성자
this.name = name; // this는 생략도 가능
this.color = color;
this.horsePower = power;
this.productYear = year;
this.maxSpeed = speed;
}
void setName(String name) {
this.name = name;
}
void setColor(String color) {
this.color = color;
}
void viewCar() {
System.out.println("이름 : " + name);
System.out.println("색상 : " + color);
System.out.println("출고연도 : " + productYear);
System.out.println("마력 : " + horsePower);
System.out.println("최고속도 : " + maxSpeed);
}
}
배열을 활용한 예제
package practice;
import java.util.Scanner;
public class practice220621version2 {
public static void main(String[] args) {
//5명의 성적을 입력 받을 배열 생성
int[] score = new int[5];
//입력을 받기 위한 스캐너 객체 생성
int total = 0;
Scanner scanner = new Scanner(System.in);
//정수 입력 받기
System.out.print("5명 점수 입력");
for(int i=0; i < score.length; i++){
score[i] = scanner.nextInt(); // 5명에게 점수를 입력하는 수식
if(score[i] <40) score[i] = 40;
total +=score[i];
}
System.out.println(total/5);
}
}
메소드 문제
package 메소드;
import java.util.Scanner;
// 3자리 정수 입력
// 100의 자리,10의 자리, 1의 자리 값을 나누어담기
// 가장 큰 수 찾기
// 입력 : 356
// a : 3, b : 5, c:6
// a와 b와 c 중에서 가장 큰 수 출력
public class Main {
static int a, b, c;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력 : ");
int num = sc.nextInt();
numSplit(num);
System.out.println(compareNum());
}
static void numSplit(int number) {
a = number / 100;
b = (number % 100) / 10;
c = number % 10;
}
static int compareNum() {
if (a > b) {
if (a > c) return a;
else return c;
} else {
if (b > c) return b;
else return c;
}
}
}
2022.06.22 수요일
메소드 문제 소수 구하기
package 메소드;
import java.util.Scanner;
// 소수의 합 구하기 : 12
// 2+3+5+7+11 = 28
public class Main {
public static void main(String[] args) {
System.out.print("정수를 입력 : ");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // Scanner 객체로 부터 정수 한개를 입력 받음
if(prime(n)) System.out.println("소수 입니다."); // 메소드의 호출 결과가 true로 반환
else System.out.println("소수가 아닙니다."); // 메소드의 호출 결과가 false로 변환
}
//prime 메소드의 호출 결과를 boolean type으로 반환(ture/false)
static boolean prime(int n) {
for(int i=2; i<n; i++) { // 1과 자기 자신을 제외하고 나누어 지는지 확인
if(n%i==0)return false; // 나누어 지는 경우 이므로 소수가 아님
}
return true; // 한번도 나누어 지지 않았기 때문에 소수임
}
}
메소드 문제 소수 구한 뒤 소수의 총 값 구하기
package 메소드;
import java.util.Scanner;
// 소수의 합 구하기 : 12
// 2+3+5+7+11 = 28
public class Main {
public static void main(String[] args) {
int sum = 0;
System.out.print("정수를 입력 : ");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // Scanner 객체로 부터 정수 한개를 입력 받음
for(int i =2; i < n;i++) sum += prime(i);
System.out.println(sum);
}
//prime 메소드의 호출 결과를 boolean type으로 반환(ture/false)
static int prime(int n) {
boolean isPrime = true;
for(int i =2; i<n; i++) { //1과 자기 자신을 제외하고 나누어 지는지 확인
if (n%i ==0) isPrime = false; // 나누어지는 경우 소수가 아님
}
if(isPrime) return n;
else return 0; // 한번도 나누어 지지 않았기 때문에 소수임
}
}
필드 영화티켓 예매
//메뉴는 예매하기와 종료하기 2개 입니다.
//극장의 좌석은 10개입니다
//먼저 좌석을 보여주고 예매할 좌석을 선택 하도록 합니다.
//판매된 좌석은 선택 할 수 없습니다.
// 종료하기 선택시 판매 된 총 금액을 계산 합니다. (좌석 당 12,000원 입니다.)
들어가기전 객체 만들기
package 영화표예매;
import java.util.Scanner;
public class MovieTicket {
int[] seat = new int[10];
// 좌석 보여 주기
void viewSeat() { // 좌석 나열 및 좌석 선택시 체크 표시
for(int i=0; i<seat.length; i++) {
if(seat[i] == 0) System.out.print("[ ]");
else System.out.print("[V]");
}
System.out.println();
}
void selectSeat() { // 좌석 표시
viewSeat();
Scanner sc = new Scanner(System.in);
System.out.print( "좌석 번호를 선택 하세요 : ");
int seatPos = sc.nextInt();
if(seat[seatPos-1]==0) {
seat[seatPos-1] = 1;
viewSeat();
} else System.out.println("이미 예약된 자석입니다.");
}
int totalAmount() { // 티켓 계산값
int cnt = 0;
for (int val : seat) {
if(val == 1) cnt++;
}
return cnt*12000;
}
}
선언 후 가져오기
package 영화표예매;
import java.util.Scanner;
//메뉴는 예매하기와 종료하기 2개 입니다.
//극장의 좌석은 10개입니다
//먼저 좌석을 보여주고 예매할 좌석을 선택 하도록 합니다.
//판매된 좌석은 선택 할 수 없습니다.
// 종료하기 선택시 판매 된 총 금액을 계산 합니다. (좌석 당 12,000원 입니다.)
public class Main {
public static void main(String[] args) {
MovieTicket ticket = new MovieTicket();
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("[1]예매하기");
System.out.println("[2]종료하기");
int selMenu = sc.nextInt();
if(selMenu == 1) ticket.selectSeat();
else{
System.out.println(ticket.totalAmount());
break;
}
}
}
}
알고리즘 문제
// 문자열을 입력 받음 : abcdef
// 결과 : fedcba
// 문자열 길이는 : 20개 이하
문자열을 그대로 입력 받을 때
package 알고리즘;
import java.util.Scanner;
public class code {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(" 문자열 입력 : ");
String input = sc.next();
char[] chArr = input.toCharArray();
for(int i=0; i< chArr.length; i++) {
System.out.print(chArr[i]+ " ");
}
}
}
입력한 문자열을 거꾸로 받을 때 (toCharArray로 사용한 방식)
package 알고리즘;
import java.util.Scanner;
public class code {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(" 문자열 입력 : ");
String input = sc.next();
char[] chArr = input.toCharArray();
for(int i=chArr.length-1; i>=0; i--) {
System.out.print(chArr[i]);
}
System.out.println();
}
}
for문을 활용한 방식
package 알고리즘;
import java.util.Scanner;
public class code {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print(" 문자열 입력 : ");
String input = sc.next();
for(int i = input.length()-1; i>=0; i--){
System.out.print(input.charAt(i));
}
System.out.println();
}
}
아이패드 주문
int screen; // 11인치(1) 와 12.9인치(2)
int color; // 컬러 : 스페이스그레이(1), 실버(2)
int memory; // 용량 : 128GB(1), 256GB(2), 512GB(3), 1TB(4)
int network; // 네트워크 : wi-fi(1), Wifi+Cellular(2)
String name; // 각인서비스로 이름
String nowDate;
String serial; // 제품의 고유 넘버
package 아이패드주문;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class IpadSpec {
int screen; // 11인치(1) 와 12.9인치(2)
int color; // 컬러 : 스페이스그레이(1), 실버(2)
int memory; // 용량 : 128GB(1), 256GB(2), 512GB(3), 1TB(4)
int network; // 네트워크 : wi-fi(1), Wifi+Cellular(2)
String name; // 각인서비스로 이름
String nowDate;
String serial; // 제품의 고유 넘버
static int cnt; // 몇대 제작 되었는지 확인
Scanner sc = new Scanner(System.in);
IpadSpec(String name) {
this.name = name;
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
nowDate = sdf.format(now);
cnt++;
nowDate = nowDate+cnt;
}
//iPad Pro 구입 선택 메뉴 만들기
boolean choicePad() {
String isQuit;
System.out.println("===== iPad 구입하기 =====");
System.out.print("계속 진행하시려면 yes를 입력하세요. 종료는 quit ");
isQuit = sc.nextLine();
if (isQuit.equals("yes")) return true;
else return false;
}
// 디스플레이 선택 가능
void setScreen() {
while (true) {
System.out.print("디스플레이 선택 [1] 11인치,[2] 12.9인치 ");
screen = sc.nextInt();
if (screen == 1 || screen == 2) break;
System.out.println("디스플레이를 다시 선택 하세요.");
}
}
// 컬러 선택 가능()
void setColor() {
while (true) {
System.out.print("컬러 선택 [1] 스페이스 그레이,[2] 실버 ");
color = sc.nextInt();
if (color == 1 || color == 2) break;
System.out.println("컬러를 다시 선택하세요.");
}
}
void setMemory() {
while (true) {
System.out.print("용량 선택 [1] 128GB,[2] 256GB,[3] 512GB,[4] 1TB ");
memory = sc.nextInt();
if (memory >0 && memory <5) break;
System.out.println("[용량을 다시 선택하세요.");
}
}
void setNetwork() {
while (true) {
System.out.print("네트워크 선택 [1] Wi-fi,[2] Wi-fi+Cellular ");
network = sc.nextInt();
if (network == 1 || network == 2) break;
System.out.println("[네트워크를 다시 선택하세요.");
}
}
//각인 서비스
void setName() {
while (true) {
String service;
System.out.print("각인 서브시를 신청하시겠습니까?(yes/no) : ");
service = sc.next();
if(service.equals("yes")) {
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력 하세요 : ");
name = sc.nextLine();
}else{
name = "iPad Pro";
}
break;
}
}
// 시리얼 넘버
void setSerial() {
String screenStr = (screen == 1) ? "11" : "13";
String [] memStr = {"", "128", "256", "512","1024"};
String netStr = (network == 1) ? "W" : "C";
serial = "iPad" + screenStr+memStr[memory]+netStr+nowDate;
System.out.println(serial);
}
//iPad 출고 하기
void makeiPad() {
final String[] screenType = {"","11인치","12.9인치"};
final String[] colorType = {"","스페이스 그레이","실버"};
final String[] memType = {"","128GB","256GB","512GB","1TB"};
final String[] netType = {"","Wi-fi","Wi-fi+Cellular"};
System.out.println(" iPad가 출고 되었습니다");
System.out.println("-----------------------------------");
System.out.println("화면 크기 : " + screenType[screen]);
System.out.println("제품 색상 : " + colorType[color]);
System.out.println("제품 용량 : " + memType[memory]);
System.out.println("네트워크 : " + netType[network]);
System.out.println("이름 : " + name);
System.out.println("일련 번호 : "+serial);
System.out.println("-----------------------------------");
}
}
package 아이패드주문;
public class Main {
public static void main(String[] args) {
while (true) { //수량 증가
IpadSpec ipad = new IpadSpec("Ipad Pro");
{
if (ipad.choicePad()) System.out.println("주문을 계속 진행 합니다.");
else {
System.out.println("주문을 종료 합니다.");
break;
}
ipad.setScreen();
ipad.setColor();
ipad.setMemory();
ipad.setNetwork();
ipad.setName();
ipad.setSerial();
ipad.makeiPad();
}
}
}
}
int -> private로 바꾸면 접근제한이 걸려서, Main에서 잘못된 입력을 하면 실행자체가 안되게 막는다.
22.06.23 수업
메소드 예제 복습 링크 : 클릭
[Java 11] 자바 - 메소드(Method)
자바의 메소드(Method)에 대해 공부해봅시다!
hyuntaekhong.github.io
오버 로딩/ 오버 라이딩 예제
오버로딩과 오버라이딩 차이와 예제
자바에서 다형성을 지원하는 방법으로 메서드 오버로딩과 오버라이딩이 있습니다. 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
private.tistory.com
this와 this()
휴대폰 요금제 알고리즘 문제
package 알고리즘;
import java.util.Scanner;
// 영식 요금제 : 30초 마다 10원(ex/ 45초면 20원)
// 민식 요금제 : 50초 마다 15원
// 첫번째 줄 입력 : 통화 횟수 (20회)
// 두번째 줄 입력 : 통화 횟수에 대한 통화 시간
// 둘 중 싼 요금제 출력 : Y 45
// 총 요금이 동일하면 : Y M 60
public class Arg {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int ym = 0; // 영식이 요금제
int mm = 0; // 민식이 요금제
int sec = 0; // 분당 요금제
System.out.print("통화 횟수를 입력하세요 : ");
int n = sc.nextInt(); // 통화 횟수
System.out.print("통화 시간을 입력하세요 : ");
for(int i = 0; i < n; i++) {
sec = sc.nextInt(); // 초단위에 정수를 넣어야함
ym += ((sec/30)+1) *10;
mm += ((sec/50)+1) *15;
}
if(ym < mm) {
System.out.println("Y" + ym);
}else if (mm < ym) {
System.out.println("M" +mm);
}else {
System.out.println("Y M"+ym);
}
}
}
선생님
package 알고리즘;
import java.util.Scanner;
// 영식 요금제 : 30초 마다 10원(ex/ 45초면 20원)
// 민식 요금제 : 50초 마다 15원
// 첫번째 줄 입력 : 통화 횟수 (20회)
// 두번째 줄 입력 : 통화 횟수에 대한 통화 시간
// 둘 중 싼 요금제 출력 : Y 45
// 총 요금이 동일하면 : Y M 60
public class Tea {
public static void main(String[] args) {
int[] call = new int[20];
int mPay = 0, yPay = 0;
Scanner sc = new Scanner(System.in);
System.out.print("통화횟수 : ");
int n = sc.nextInt();
for(int i = 0; i <n; i++) {
call[i] = sc.nextInt(); // 각의 통화 시간
}
for(int i =0; i<n; i++) {
yPay += (call[i]/30) * 10 +10;
mPay += (call[i]/60) * 15 +15;
}
if(yPay > mPay) System.out.println("M"+mPay);
else if(yPay < mPay) System.out.println("Y"+yPay);
else System.out.println("Y M"+yPay);
}
}
'프로그래밍 언어 복습 > JAVA 수업 내용' 카테고리의 다른 글
JAVA 수업내용 2주차 - (22.06.20 ~ 06.24) (0) | 2022.06.20 |
---|
댓글0