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

+ Recent posts