열심히 끝까지
[코딩 문제] - 6/7~6/10 시간, 최대공약수, 최소공배수 본문
추가문제(6/7)
int a = 5;
int b = --a;
int c = a++ - b--;
syso(a);
syso(b);
syso(++c);
디버깅표
a b c
----------------------------
5
4 4
0
5 3
1
syso(a); // 5
syso(b); // 3
syso(c); // 1
-------------------강사님 방법(6/8 풀이)
a b c
--------------------
5
4 4 0
5 3
1
--------------------------------------------------------
과제(6/8)
1시간 넘어가면 문제가 존재..... 잘한다 하면 30분 미만(문제 30분 이상)
과제문제)
시간 입력 : 4 // 1~12시
분 입력 : 50 // 0~59분
/// 잘못된 입력 -> 종료
4시 50분의 1시간 20분 전 시간은
3시 30분 입니다.
3시 10분의 1시간 20분 전 시간은
1시 50분 입니다.
1시 10분의 1시간 20분 전 시간은
11시 50분 입니다.
풀어본 결과 6/9일자에 해설 올라감
package class08;
import java.util.Scanner;
public class Test12 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("시간을 입력(1~12시) : ");
int hour = sc.nextInt();
if(hour < 1 || hour > 12 ){
System.out.println("종료");
}
else {
System.out.print("분을 입력(0~59분) : ");
int minute = sc.nextInt();
if( minute < 0 || minute > 59) {
System.out.println("종료");
}
else {
int time = (hour * 60) + minute;
if(time < 80) {
time += 720;
}
int reshour = (time - 80)/60;
int resminute = (time - 80)%60;
System.out.println(hour + "시 " + minute + "분의 1시간 20분 전
시간은 " + reshour + "시 " + resminute + "분입니다.");
}
}
}
}
-----------------------강사님 방법(6/9 풀이)
package class01;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("시간 : ");
int h = sc.nextInt();
System.out.print("분 : ");
int m = sc.nextInt();
if((h < 1 || 12 < h) || (m < 0 || 59 < m)) {
// 유효성 체크!
System.out.println("시간 범위 : 1~12");
System.out.println("분 범위 : 0~59");
}
else {
System.out.println(h + "시 " + m + "분의 1시간 20분 전 시간은");
h-=1;
m-=20;
if(m < 0) {
m += 60;
h--;
}
if(h < 1) { // h값을 제대로 정하려면 정해놓은 이후로 건드리면 안된다.
h += 12;
}
System.out.println(h + "시 " + m + "분입니다.");
}
// 검사 == 테스트
// 1) 경계값 검사 : 경계가 될 만한 값을 일부러 넣어서 검사해보기
}
}
-------------------------------------------------------------
과제(6/9)
정수 두개 입력
정수1 : 10
정수2 : 12
10와(과) 12의
최대공약수는 2이고,
최소공배수는 60입니다.
정수1 : 16
정수2 : 12
12와(과) 16의
최대공약수는 4이고,
최소공배수는 48입니다.
-----------
package class07;
import java.util.Scanner;
public class Test1001 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 1 입력 : ");
int n1 = sc.nextInt();
System.out.print("정수 2 입력 : ");
int n2 = sc.nextInt();
int tmp;
if(n1 > n2) {
tmp = n1;
n1 = n2;
n2 = tmp;
}
int gd = 0;
int lm = 0;
for(int i = n1; i > 1; i--) {
if(n1 % i == 0 && n2 % i == 0) {
gd = i;
lm = i * (n1 / i) * (n2 / i);
break;
}
}
System.out.println(n1 + "와(과) " + n2 + "의\n최대공약수는 " + gd + "이고,"
+ " \n최소공배수는 " + lm + "입니다.");
}
}
----------------------------------강사님 방법(6/10 풀이)
방법1
package class01;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 : ");
int a = sc.nextInt();
System.out.print("정수 : ");
int b = sc.nextInt();
if(a>b) {
int tmp = a;
a = b;
b = tmp;
}
int i;
for(i = a; i >= 1; i--) {
if(a % i ==0 && b % i == 0) {
break;
}
}
System.out.println(a + "와(과) " + b + "의 ");
System.out.println("최대공약수는 " + i + "이고");
System.out.println("최소공배수는 " + (a * b / i) + "입니다.");
}
}
-------------
방법2
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 : ");
int a = sc.nextInt();
System.out.print("정수 : ");
int b = sc.nextInt();
if(a>b) {
int tmp = a;
a = b;
b = tmp;
}
for(int i = a; i >= 1; i--) {
if(a % i ==0 && b % i == 0) {
System.out.println(a + "와(과) " + b + "의 ");
System.out.println("최대공약수는 " + i + "이고");
System.out.println("최소공배수는 " + (a * b / i) + "입니다.");
break;
}
}
}
}
--------------------------------
디버깅표
a b i i>=1
--------------------------
4 8 4 T << 바로 break; 중간문을 안만남
'디바이스 융합 자바(Java)기반 풀스택 개발자 양성과정(과제)' 카테고리의 다른 글
[능력 단위 평가] - 6/9 문제 코딩 + 다른 팀 문제 코딩 (0) | 2022.06.17 |
---|---|
[10분 테코톡] 던의 JVM의 Garbage Collector 영상정리 (0) | 2022.06.12 |
[10분 테코톡] 제이의 시간복잡도 영상정리 (0) | 2022.06.12 |
[10분 테코톡] 스티치의 빌드와 배포 영상정리 (0) | 2022.06.12 |
[10분 테코톡] 에헴의 빌드용어 영상정리 (0) | 2022.06.12 |