망나니 AWOS의 일상
article thumbnail
[java] 백준 2523번 별 찍기 - 13
알고리즘/백준 2021. 8. 9. 15:11

내 입장에서 별 찍기가 가장 어려운 것 같다... (멍충해서 그런가 ㅋㅋ 아니면 1학년 때 C언어 과목에서 고놈의 별 찍기를 트라우마가 생길 정도로 찍었던 기억 때문일지도... 과제로 내주시는 교수님... 하지만 printf("")로 찍었던 나... ㅎㅎㅎ) 문제 출력에서 보면 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 라고 했으니 입력이 N=3이 들어왔을 때 출력이 총 5줄에 걸쳐 찍히기 때문에 기준을 N으로 잡아서 풀면 되겠다는 생각이 들었다. for(int i=0; i

article thumbnail
[java] 백준 5073번 삼각형과 세 변
알고리즘/백준 2021. 8. 9. 13:11

간단하게 요약하자면 Equilateral : 세 변의 길이가 모두 같은 경우 Isosceles : 두 변의 길이만 같은 경우 Scalene : 세 변의 길이가 모두 다른 경우 Invalid : 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우(가장 긴 변 >= 나머지 두변의 합) 입력이 0 0 0이 들어가지 않는 이상 계속 돌게 만들어야된다. 가장 긴 변 같은 경우 세 변을 입력받고 가장 큰 값을 긴 변으로 생각하여 변수(max)를 만들어주면 되고 나머지는 비교 연사자를 쓰면 풀 수 있는 문제이다. 여담) 처음에 쓴 코드다. (당연히 틀렸다..) if (arr[0] == arr[1] && arr[1] == arr[2]) System.out.println("Equilateral"); else i..

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

문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. [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문제에서 쓰던 소스를 복..

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

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

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

문제 내용이 뭔가 긴데... 그냥 요약해주자면... 입력을 홀수 홀수 짝수 입력받았을 때 홀수 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()..

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

문제에서 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번 시그마 전에는 쉬운 ..

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

전에는 쉬운 알고리즘 문제 풀면서 시간제한이 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..