Baekjoon 단계별 문제풀이 중 "사칙연산" 카테고리 11문제 풀이
(일부는 풀이 적는 거 까먹어서 1,2,3,4,5,6,10,11번만 있음)
package ml.app2;
import java.util.Scanner;
public class chapter_3 {
public static void main(String[] args) {
System.out.println("#1");
System.out.println("Hello World!");
System.out.println("\n\n#2");
System.out.println("강한친구 대한육군");
System.out.println("강한친구 대한육군");
System.out.println("\n\n#3");
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
System.out.println("\n\n#4");
System.out.println("|\\_/|");
System.out.println("|q p| /}");
System.out.println("( 0 )\"\"\"\\");
System.out.println("|\"^\"` |");
System.out.println("||_/=\\\\__|");
System.out.println("\n\n#5\n");
Scanner scanner = new Scanner(System.in);
int A = scanner.nextInt();
int B = scanner.nextInt();
if(A>0 && B<10) {
int result1 = A + B;
System.out.println("A+B= " + result1);
}else {
System.out.println("ERROR!");
}
System.out.println("\n\n#6\n");
int C, D;
C = scanner.nextInt();
D = scanner.nextInt();
if(C>0 && C<10 && D>0 && D<10) {
int result2 = C - D;
System.out.print(result2);
}else {
System.out.println("ERROR!");
}
System.out.println("\n\n#10\n");
int E = scanner.nextInt();
int F = scanner.nextInt();
int G = scanner.nextInt();
if(E>=2 && E<=10000 && F>=2 && F<=10000 && G>=2 && G<=10000) {
int result3 = (E+F)%G;
int result4 = ((E%G)+(F%G))%G;
int result5 = (E*F)%G;
int result6 = ((E%G)*(F%G))%G;
System.out.println(result3);
System.out.println(result4);
System.out.println(result5);
System.out.println(result6);
}else {
System.out.println("ERROR!");
}
System.out.println("\n\n#11\n");
int H = scanner.nextInt();
int I = scanner.nextInt();
if (H>=100 && H<1000 && I>=100 && I<1000) {
int result7 = H*(I%10);
System.out.println(result7);
int result8 = H*((I%100)-(I%10));
if (result8 == 0) {
System.out.println(0);
}else {
System.out.println(result8/10);
}
int result9 = H*(I-(I%100));
if (result9 == 0) {
System.out.println(0);
}else {
System.out.println(result9/100);
}
int result10 = result7 + result8 + result9;
System.out.println(result10);
}else {
System.out.println("ERROR");
}
scanner.close();
}
}
정리
#5, #6
5번, 6번문제는 정수를 입력으로 받아서 scanner.nextInt(); 를 사용했다.
그러나 만약 정수가 아니라 문자열, String을 입력으로 받았더라면 상황이 복잡했을 수 있다.
nextInt의 경우, 숫자와 숫자 사이의 공백을 입력으로 받아들이지 않고 숫자만을 입력으로 받아들인다면,
String을 입력으로 받는 경우 두 입력 사이의 공백 등이 받아들여졌을 수 있다.
#11
세 자리 자연수 A, B를 입력으로 받되, 계산 과정에서 B의 각 자릿수의 숫자가 필요한 문제였다.
나는 String.valueOf() 과 .substring을 이용해서 int 타입의 B를 string으로 바꾼 다음 각 자릿수를 출력하려고 했으나, 훨씬 더 간단한 방법이 있었다.
=> abc라는 세 자리 자연수가 있을 때, %을 이용하면 각 자릿수를 쉽게 출력할 수 있다.
일의자리) abc % 10 = c.
십의자리) abc % 100 = bc. (abc*100)-(abc%10) = bc-c = b0. b0 / 10 = b.
백의자리) abc-(abc%100) = abc-bc = a00. a00 / 100 = a.
또한 input을 받기 위해 Scanner method를 사용했다면, 코드가 끝날 때 닫아줘야 한다!
scanner.close(); <-이렇게.
'server-side > JAVA Algorithm' 카테고리의 다른 글
Step.9 : 9-1 ~ 9-6 (0) | 2021.06.05 |
---|---|
Chapter 4-1 if문 (0) | 2021.05.04 |