쉬운 기초 문제이니 코드만 올리도록 하겠다.
방법은 Scanner와 BufferedReader 두가지 방법을 이용했다.
1. BufferedReader를 이용한 풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws NumberFormatException, IOException {
int num = Integer.parseInt(br.readLine());
System.out.println(Factorial(num));
}
private static int Factorial(int n) {
if(n <= 1)
return 1;
else
return n * Factorial(n-1);
}
}
풀이 결과
2. Scanner를 이용한 풀이
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
sc.close();
System.out.println(Factorial(num));
}
private static int Factorial(int n) {
if(n <= 1)
return 1;
else
return n * Factorial(n-1);
}
}
풀이 결과
확실히 BufferedReader가 속도가 더 빠르다.
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[Java] 백준 1, 2, 3 더하기 - 9095번 (재귀 용법 사용 / 풀이 방식) (0) | 2022.07.11 |
---|---|
백준 JAVA 10870번 - 피보나치수 5 (0) | 2022.03.08 |
프로그래머스 C# - 소수 만들기 (Summer/Winter Coding) (0) | 2022.02.21 |
백준 JAVA 1436번 - 영화감독 숌 (0) | 2021.10.03 |
백준 C# 2798번 - 블랙잭 (0) | 2021.09.26 |
댓글