[java] 백준 2748번 피보나치 수 2
알고리즘/백준2021. 8. 8. 10:14[java] 백준 2748번 피보나치 수 2

먼저 문제를 보기 전 어제 풀었던 피보나치 수 문제와 같은 문제다. 단지 범위가 커진 것 뿐... [java] 백준 2747번 피보나치 수 문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scann.." data-og-host="begin-dev-awos... begin-dev-awos.tistory.com 피보나치 수(2747번) 문제와 동일하기 때문에 코드에 대한 설명은 하지않고 어떤 점이 달라지는지를 설명하도록 하겠다. 간단하게 2747번 문제라고 하겠다. 2747번 문제 같은 경우 int형의 범위 안에서 결과값이 나올 수 있었는데... 이번 문제 같..

[java] 백준 2747번 피보나치 수
알고리즘/백준2021. 8. 7. 14:01[java] 백준 2747번 피보나치 수

문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. [java] 백준 10870번 피보나치 수 5 문제를 요약하자면 0번째 0, 1번째 1, 2번째부터는 0번째 값과 첫 번째 값의 합이라는 것이다. F(2) = F(0) + F(1) -> 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scann.. begin-dev-awos.tistory.com 이 문제와 위의 문제의 차이점은 n의 범위다. 10870번 문제에서 n은 20이었고, 이번 2747번 문제에서는 n은 45이다. 또한 티어의 차이도 있는데 약간 애매하다... 10870 티어가 좀 더 높은데 난 뒤바꼈다고 생각한다. 10870문제에서 쓰던 소스를 복..

[java] 백준 21866번 추첨을 통해 커피를 받자
알고리즘/백준2021. 8. 7. 09:38[java] 백준 21866번 추첨을 통해 커피를 받자

문제 내용을 요약하자면 대회의 9문제의 배점이 100점, 100점, 200점, 200점, 300점, 300점, 400점, 400점, 500점 이라고 한다. 그리고 받은 점수의 합계가 100점 이상이라면 커피를 받을 수 있다. 근데 점수를 조작하는 사람들이 있는데 문제의 배점을 초과하여 점수를 받는다면 hacker로 간주 출력에서 커피 추첨 대상자가 아니라면 none을 출력하고, 해커라면 hacker를 출력한다. 그 외의 경우에는 draw를 출력한다. 라고 되어있으니 그에 맞게 if문으로 조건 걸어주면 쉽게 풀 수 있다. 9문제의 배점을 배열로 만들어 점수를 입력받을 때 문제의 배점을 입력받은 점수가 초과하게 되면 hacker, 100점 미만이면 none, 그 외라면 draw 로 처리해주면 된다. impo..

[java] 백준 21312번 홀짝 칵테일
알고리즘/백준2021. 8. 6. 16:08[java] 백준 21312번 홀짝 칵테일

문제 내용이 뭔가 긴데... 그냥 요약해주자면... 입력을 홀수 홀수 짝수 입력받았을 때 홀수 X 홀수 해주면 되고 홀수 홀수 홀수 입력 받았을 때 홀수 X 홀수 X 홀수 해주면 된다. 짝수 짝수 짝수 입력 받았을 때 짝수 X 짝수 X 짝수 해주면 된다. 다시 한번 예를 들어주자면 짝수 짝수 홀수가 나왔을 때 1 X 홀수가 된다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[3]; int tot = 1; for (int i = 0; i < 3; i++) { arr[i] = sc.nextInt()..

[java] 백준 10870번 피보나치 수 5
알고리즘/백준2021. 8. 5. 23:35[java] 백준 10870번 피보나치 수 5

문제를 요약하자면 0번째 0, 1번째 1, 2번째부터는 0번째 값과 첫 번째 값의 합이라는 것이다. F(2) = F(0) + F(1) -> 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scanner; class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n_th= sc.nextInt(); System.out.println(pibo(n_th)); } static int pibo(int n){ if(n

[java] 백준 2721번 삼각수의 합
알고리즘/백준2021. 8. 5. 17:51[java] 백준 2721번 삼각수의 합

문제에서 T(n)은 1부터 n까지의 합, T(4) = 1+2+3+4, 즉 T(4) = 10 W(n) = Sum[k=1..n; k*T(k+1)] 좀 쉽게 풀어서 쓰자면 W(4)일 때 식은 이렇게 나온다. W(4) = 1*T(2) + 2*T(3) + 3*T(4) + 4*T(5) T를 좀더 쉽게 풀어쓰면 W(4) = 1*(1+2) + 2*(1+2+3) + 3*(1+2+3+4) + 4*(1+2+3+4+5) W(4) = 3 + 12 + 30 + 60 = W(4) = 105가 된다. 처음에 문제를 봤을 때 이게 뭔 소린가 싶었다. 필자는 공부에 뜻이 없어 전과목을 포기했다... ㅋㅋㅋ 오로지 게임에만... 이 문제의 공식도 어제 풀었던 시그마 문제랑 식이 비슷하다. [java] 백준 2355번 시그마 전에는 쉬운 ..

[java] 백준 2355번 시그마
알고리즘/백준2021. 8. 4. 16:45[java] 백준 2355번 시그마

전에는 쉬운 알고리즘 문제 풀면서 시간제한이 1~2 초거나 범위가 꽤 크지 않았다. 하지만 이제는 점차 시간제한도 있고 범위가 상당하다... 처음에 접근한 방식이다. 범위가 int 형이어서 int형을 써보았지만 StackOverflow... Long을 써봤는데도 StackOverflow... 검색해보니 재귀를 많이 돌리면 stackoverflow가 난다고 했다. 아래의 소스는 재귀로 돌렸을 때 결과는 잘 나오지만 백준에 냈을 때 stackoverflow가 나온 결과 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long A = sc..

[java] 백준 5586번 JOI와 IOI
알고리즘/백준2021. 8. 2. 12:59[java] 백준 5586번 JOI와 IOI

예제 입력 2 같은 경우 겹쳐서 보면 JOI가 1번 IOI가 3번 나온 것을 알 수 있다. 예제 입력3 도 마찬가지로 JOI가 2번 IOI가 3번 나온 것을 알 수 있다. 내가 생각한 방법은 이렇다. String으로 문자열을 입력받고 charAt()으로 JOI와 IOI가 있는지 확인해 count를 세는 것이다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); int count1=0, count2=0; // 배열크기를 벗어나기 때문에 -2를 해줌 // 현재의 문자와 그 다음 첫번째 문자 두번째 문..

[java] 백준 1427번 소트인사이드
알고리즘/백준2021. 8. 1. 15:30[java] 백준 1427번 소트인사이드

이 문제를 보기 전 아래의 문제를 보면 오름차순으로 정렬하였을 때는 Arrays.sort()를 써주었으면 되었는데 이번 문제는 내림차순이다. [java] 백준 2750번 수 정렬하기 문제의 핵심은 오름차순으로 정렬하는 것이다. 이 문장을 보자마자 Arrays.sort()라는 메소드를 이용하면 쉽게 풀 수 있을 것 같아 바로 적용하였다. 기본적으로 오름차순 정렬이기 때문에 간단하 begin-dev-awos.tistory.com 물론 Collections.sort를 이용하여 내림차순 정렬을 할 수 있긴 하겠지만... 보아하니 방법이 어려워 보여서 간단한 방법으로 풀어보았다. import java.util.Scanner; public class Main { public static void main(Strin..

[java] 백준 5086번 배수와 약수
알고리즘/백준2021. 7. 31. 22:19[java] 백준 5086번 배수와 약수

약수와 배수의 공통점은 나누었을 때 딱 나누어 떨어진다는 점이다. 그래서 두 수의 대소 비교만 해주면 약수와 배수를 구할 수 있을 것이라고 판단하여 아래와 같이 코드를 짰다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { int a = sc.nextInt(); int b = sc.nextInt(); if (a == 0 && b == 0) { break; } if (a b && a % b =..

image