작성할 때, \ 는 단독으로 사용 불가 하므로, \\ 를 두 번 입력하여 만들어내면 귀여운 고양이가 나올 것이다. public class Step1_12 { public static void main(String[] args) { System.out.println("\\ /\\"); System.out.println(" ) ( ')"); System.out.println("( / )"); System.out.println(" \\(__)|"); } }
이번 문제 또한 매우 쉽지만, 문제를 제대로 읽지 않으면 런타임 에러가 뜰 것이다.. 정수형을 저장하는 기본형은 4가지가 있다. 순서대로 1byte,2byte,4byte,8byte의 저장공간을 차지한다. (Long 보다 더 큰 범위의 정수를 저장할 땐, Big Integer를 쓸 수 있다.) 우선 이 문제를 런타임 에러없이 풀어내기 위해서 int, Long 이 저장할 수 있는 정수의 범위를 알아야 한다. int = -2^31 ~ 2^31-1 Long = -2^63 ~ 2^63-1 2^10은 10^3과 근삿값이다. 따라서 int는 ±2 * 10^9, 약 ±20억이다. 하지만 문제에서 세 정수의 범위는 10^12까지 이므로, Long 타입을 사용하면 간단하게 ..
이번 문제는 어떻게 구현할지 생각만 잘한다면 매우 쉬운 문제이다. 우리는 곱셈을 계산할 때, 위의 문제와 같이 A와 B의 각 자릿수의 곱을 구한 후 더한다. 그렇기에 3번에 들어올 메서드는 B의 일의 자리를 구하고, 4번에 들어올 메서드는 십의 자리를 구하고, 5번에 들어올 메서드는 백의 자릴 구하면 된다. 6번에 들어올 메서드는 어떻게 구해야 할지 말 안 해도 알 것이다. import java.util.*; public class Step1_10 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Math1.A = sc.nextInt(); Math1.B = sc.nextInt(); Math1.calculate3(..
이 문제는 문제만 잘 보면 해결할 수 있는 간단한 문제이다. 이렇게만 보면 비효율적이다. 하지만 앞서 말했듯이, 필자는 객체지향을 이제 공부를 시작한 시점이라, 최대한 익숙해지려고 이렇게 작성한 것이니까 이해해주기 바란다. import java.util.*; public class Step1_9 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Math.a[0] = sc.nextInt(); Math.a[1] = sc.nextInt(); Math.a[2] = sc.nextInt(); Math.calculate(); } } class Math { static int[] a = new int[3]; static voi..
매우 간단한 문제이다. 문제에서 입력값과 출력값의 차를 구하면 매우 간단하게 구현할 수 있다. import java.util.*; public class Step1_8 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Year.input = sc.nextInt(); Year.toAD(); } } class Year { static int input; static void toAD () { System.out.println(input-543); } }
매우 간단한 문제이다. 하지만, 예전의 필자는 부끄럽게도 이 문제가 의도하는 바를 깨닫지 못해 여러번 제출했던 기억이 있다.. 제출할 땐 다음의 코드와 같이 간단하게 할 수 있다. import java.util.*; public class Step1_7 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); System.out.println(input +"??!"); } }
이 문제는 이때까지 풀어 온 문제들을 종합하여 풀면 된다. 단 %는 나머지 연산자를 뜻한다. 매우 쉽지만 지금부터 필자는 객체지향적인 코드를 현재 한창 배우고 있기에, 앞으로도 작은 문제라도 최대한 객체 지향적으로 작성할 것이기에 길더라도 양해 부탁하는 바다. import java.util.*; public class Step1_6 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); MyMath.A = sc.nextInt(); MyMath.B = sc.nextInt(); MyMath.add(); MyMath.subtract(); MyMath.multiply(); MyMath.divide(); MyMath.remai..
이번 문제는 간단한 문제 이긴 하나, 약간의 설명을 붙이면 좋을 것 같다. 우리가 알다시피 자바에서의 (정수 / 정수)는 정수이므로, 값손실이 발생할 확률이 높다. 그렇기에 실수형의 값을 구하려고 할 땐, a 와 b 중 하나를 형변환을 하거나, 한 변수를 double 타입으로 선언하면 될 것이다. 그리고 double 타입은 float 보다 2배의 저장 공간 크기를 가지지만, 정확한 값을 구하려고 할 땐 float 보다 double이 2배 정도 높은 정확도를 가지므로 double을 사용하는 게 좋다. import java.util.*; public class Step1_5 { public static void main(String[] args) { Scanner sc = new Scanner(System...
간단한 문제이니 설명은 생략한다. import java.util.Scanner; public class Step1_4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a * b); } }