본문 바로가기

Algorithm/[BOJ] - JAVA

(173)
[백준] 2447 : 별 찍기 - 10 JAVA 풀이 이번 문제는 규칙이 있다는 건 알겠는데 코드로 어떻게 구현해야 하는지 감이 안와서 정말 어려웠다. 그래서 이 블로그의 포스트를 보고 이해하려고 노력해봤다. https://st-lab.tistory.com/95 [백준] 2447번 : 별 찍기 - 10 - JAVA [자바] www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백.. st-lab.tistory.com 출력 예제를 잘 보면 하나의 블럭을 9등분으로 나눌 수가 있다. 그리고 나눠진 한 조각은 * * * * 공백 * * * * 이렇게 구성되어있다. 이..
[백준] 17478 : 재귀함수가 뭔가요? JAVA 풀이 이 예제 출력을 보고 어떻게 구현할지 생각해봤다. 1. 메인함수에서 "어느 한~~"를 출력한다. 2. 재귀횟수 N을 입력받는다. 3. 재귀를 시작한다. 3-1 재귀 종료 조건은 함수의 인자가 0일 때로 한다. (메인에서 입력받은 N부터 0까지 감소시키며 재귀) 3-2 재귀를 할 때마다 문장 앞에 "____"의 개수가 배로 늘어나는데, 이는 전역변수에 저장해두고 재귀함수 속 변수에서 복사해서 사용한다. (따로 복사해서 사용하지 않으면 재귀종료조건을 만족하고 리턴될 때, 출력되는 "____"의 개수가 줄어들지 않는다.) !!! 자바에서 "는 단독으로 출력할 수 없어서 \"라고 써줘야 한다. import java.io.InputStreamReader; import java.io.BufferedReader; i..
[백준] 10870 : 피보나치 수 5 JAVA 풀이 1. 0번째 피보나치 수는 0이다. 2. 1번째 피보나치 수는 1이다. 3. 그 다음 2번째부터는 바로 앞 두 피보나치 수의 합이 된다. 이 문장을 그대로 코드로 작성하면 된다. import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); System.out.p..
[백준] 10872 : 팩토리얼 JAVA 풀이 import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); System.out.println(factorial(N)); } public static int factorial(int n){ if(n
[백준] 1065 : 한수 JAVA 풀이 1. 1
[백준] 4673 : 셀프 넘버 JAVA 풀이 1. 셀프넘버인지 체크할 배열을 만든다. 2. 1부터 10000까지의 값에 대해 자기 자신과 각 자리수를 더한 값을 구하고, 이렇게 구해진 값은 셀프넘버가 아니니 배열에 체크한다. -> 10000보다 작거나 같은 셀프 넘버만 구하면 되기 때문에 10000이 넘어가는 값이 나오면 무시한다. 3. 셀프 넘버인 값만 출력한다. public class Main{ public static boolean[] arr = new boolean[10001]; public static void main(String[] args){ FindSelfNum(arr.length-1); for(int i=1;i
[백준]15596 : 정수 n개의 합 JAVA 풀이 딱 한 줄만 추가하면 되는 문제라서... 입력되는 배열 a의 길이만큼 반복문을 돌려서 a의 모든 값을 더하는 식으로 풀었다. public class Test { long sum(int[] a) { long ans = 0; for(int i=0;i
[백준] 9020 : 골드바흐의 추측 JAVA 풀이 1. 에라토스테네스의 체로 n의 범위까지 소수인 값을 찾아놓는다. 2. 테스트의 개수 T를 입력받는다. 3. 2보다 큰 짝수 n을 입력받는다. 4. n을 둘로 나눈 값을 저장한다. 5. n을 둘로 나눈 값들이 소수가 아니면 하나는 1을 더하고 하나는 1을 뺀다. 6. n을 둘로 나눈 값 둘 다 소수가 될 때까지 반복하고, 출력한다. import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Main{ public static boolean primeList[] = new boolean[10001]; // 에라토스테네스의 체로 소수인지 판별할 배열 public static vo..