다 하긴 했는데 다 올리긴 좀 그렇고...
먼가 더 깔끔하게 할 수 있을까? 싶었던 것들을 올려본다.
(1172 1274 1278 1380)
## 1172
세 수 정렬하기
import java.util.Scanner;
public class CodeUp1172 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if (a < b && a < c) {
System.out.print(a + " ");
if (b < c)
System.out.print(b + " " + c);
else
System.out.println(c + " " + b);
} else if (b < c) {
System.out.print(b + " ");
if (c < a)
System.out.print(c + " " + a);
else
System.out.println(a + " " + c);
} else {
System.out.print(c + " ");
if (b < a)
System.out.println(b + " " + a);
else
System.out.println(a + " " + b);
}
}
}
- 수업 중 print말고 printf를 쓰면 보기 더 편하겠단 생각도 들었다.
- 또 어차피 여섯 가지의 경우니까 그냥 if 안에 if 넣을 필요 없이 각각 6가지 경우를 나누는 것도 좋겠다 싶었다.
## 1274
소수 판별
import java.util.Scanner;
public class CodeUp1274 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int prime = 0;
for (int i = num; i > 0; i--) {
if (num%i==0)
prime++;
}
if(prime<=2)
System.out.println("prime");
else
System.out.println("not prime");
}
}
- 루트 num 까지만 검사해도 된다는데... 최적화가 더 가능하다는 뜻이겠지만 이건 코딩적인 부분보단 수학적인 부분 같다고 느껴지기도 하고... 굳이 싶었다.
- 교수님은 boolean flag로 하셨는데 i를 1까지 다 체크한 내 방법에서, 2까지만 체크하는 걸로 바꾸면 true / false로 바꿀 수도 있을 것 같다.
## 1278
자릿수 계산
import java.util.Scanner;
public class CodeUp1278 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 1;
int n = sc.nextInt();
while (true) {
if (n / ((int) Math.pow(10, i)) == 0)
break;
i++;
}
System.out.println(i);
}
}
- 일단 제곱을 표현하려고 Math.pow를 썼다.
- string으로 입력받아 .length로 하는 것도 있는데 그건 출제 의도와 안맞을거라고 말씀하셨다. 하지만 나름 기발해보인다...
## 1380
두 주사위의 합
- 숫자 하나 입력받으면 주사위 두개로 만드는 모든 경우의 수를 출력
import java.util.Scanner;
public class CodeUp1380 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
int first=1;
if (k>7)
first = k-6;
for (int i = first; i <= k-first; i++) {
System.out.println(i+" "+(k-i));
}
}
}
- 첫 추사위 눈을 first로 처리하는 게 최선이었을까?
- 논리적으로는 맞긴 한데 다른 사람은 어떻게 했을지 보고싶다.
'PS - CodeUp' 카테고리의 다른 글
1096, 1097, 1098 - 바둑판에 흰 돌 놓기, 바둑알 십자 뒤집기, 설탕과자 뽑기 (0) | 2022.01.20 |
---|---|
1093, 1094, 1095 - 이상한 출석 번호 부르기 1, 2, 3 (0) | 2022.01.20 |
1441, 1442, 1443 - 버블 정렬, 선택 정렬, 삽입 정렬 (0) | 2022.01.20 |
1099 - 성실한 개미 (0) | 2022.01.19 |
1416 - 2진수 변환, 1524 - 지뢰찾기1 (0) | 2022.01.18 |
다 하긴 했는데 다 올리긴 좀 그렇고...
먼가 더 깔끔하게 할 수 있을까? 싶었던 것들을 올려본다.
(1172 1274 1278 1380)
## 1172
세 수 정렬하기
import java.util.Scanner;
public class CodeUp1172 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if (a < b && a < c) {
System.out.print(a + " ");
if (b < c)
System.out.print(b + " " + c);
else
System.out.println(c + " " + b);
} else if (b < c) {
System.out.print(b + " ");
if (c < a)
System.out.print(c + " " + a);
else
System.out.println(a + " " + c);
} else {
System.out.print(c + " ");
if (b < a)
System.out.println(b + " " + a);
else
System.out.println(a + " " + b);
}
}
}
- 수업 중 print말고 printf를 쓰면 보기 더 편하겠단 생각도 들었다.
- 또 어차피 여섯 가지의 경우니까 그냥 if 안에 if 넣을 필요 없이 각각 6가지 경우를 나누는 것도 좋겠다 싶었다.
## 1274
소수 판별
import java.util.Scanner;
public class CodeUp1274 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int prime = 0;
for (int i = num; i > 0; i--) {
if (num%i==0)
prime++;
}
if(prime<=2)
System.out.println("prime");
else
System.out.println("not prime");
}
}
- 루트 num 까지만 검사해도 된다는데... 최적화가 더 가능하다는 뜻이겠지만 이건 코딩적인 부분보단 수학적인 부분 같다고 느껴지기도 하고... 굳이 싶었다.
- 교수님은 boolean flag로 하셨는데 i를 1까지 다 체크한 내 방법에서, 2까지만 체크하는 걸로 바꾸면 true / false로 바꿀 수도 있을 것 같다.
## 1278
자릿수 계산
import java.util.Scanner;
public class CodeUp1278 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 1;
int n = sc.nextInt();
while (true) {
if (n / ((int) Math.pow(10, i)) == 0)
break;
i++;
}
System.out.println(i);
}
}
- 일단 제곱을 표현하려고 Math.pow를 썼다.
- string으로 입력받아 .length로 하는 것도 있는데 그건 출제 의도와 안맞을거라고 말씀하셨다. 하지만 나름 기발해보인다...
## 1380
두 주사위의 합
- 숫자 하나 입력받으면 주사위 두개로 만드는 모든 경우의 수를 출력
import java.util.Scanner;
public class CodeUp1380 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
int first=1;
if (k>7)
first = k-6;
for (int i = first; i <= k-first; i++) {
System.out.println(i+" "+(k-i));
}
}
}
- 첫 추사위 눈을 first로 처리하는 게 최선이었을까?
- 논리적으로는 맞긴 한데 다른 사람은 어떻게 했을지 보고싶다.
'PS - CodeUp' 카테고리의 다른 글
1096, 1097, 1098 - 바둑판에 흰 돌 놓기, 바둑알 십자 뒤집기, 설탕과자 뽑기 (0) | 2022.01.20 |
---|---|
1093, 1094, 1095 - 이상한 출석 번호 부르기 1, 2, 3 (0) | 2022.01.20 |
1441, 1442, 1443 - 버블 정렬, 선택 정렬, 삽입 정렬 (0) | 2022.01.20 |
1099 - 성실한 개미 (0) | 2022.01.19 |
1416 - 2진수 변환, 1524 - 지뢰찾기1 (0) | 2022.01.18 |