본문 바로가기

99클럽29

[Day16]JAVA 백준 게임을 만든 동준이(2847번) https://www.acmicpc.net/problem/2847    규칙만 파악하면 쉽게 풀 수 있는 문제이다.문제가 이해안되는 분들을 위해 힌트만 먼저 제공하겠습니다! 💡힌트총4 레벨이 있고 각 레벨마다 5 , 3 , 7 , 5  점이다. 1레벨은 5점 2레벨은 3점3레벨은 7점4레벨은 5점 이다.가장 어려운 4레벨의 5점을 기준으로 점수를 낮추면 된다. 3레벨을 (5-1)4점을 만들기 위해서는 7-3 을 해야한다. 즉 3번 감소 시켜야한다. 1레벨까지 이 과정을 반복하면서 상위 레벨보다 작은 점수를 만들면 된다.   2847번 의 규칙은 상위 레벨과 비교 하며 상위 레벨의 점수보다 1점이 더 적을때까지 감소시켜준다. 기준이 되는 상위 레벨을 점수를 maxLevel  그 바로 밑의 레벨의 점수를 .. 2024. 11. 12.
[Day15]JAVA 카드 문자열(13417번) https://www.acmicpc.net/problem/13417   백준 카드문자열 문제를 풀기위해서는 Greedy(탐욕법) 을 활용해서 풀 수 있다. 즉, 최적의 규칙을 찾는 것이다  문제의 규칙 은첫번째 카드 외 나머지 카드를 왼쪽 과 오른쪽으로 붙여서 알파벳 순으로 가장 빠른 문자열을 출력하는 것이다.   M K U 세장의 카드가 있을때 첫번째 카드 M 은 기본으로 한장 내놓고 두번째 카드 K  는 M과 비교하여 어느 알파벳이 더 빠른지 비교한다 ->  K가 M보다 더 먼저 있으니 가장 왼쪽편에 놓는다. 세번째 카드 U 는 현재 완성된 단어 KM 중  맨 앞글자인 K 과 비교하여 어느 알파벳이 더 빠른지 확인한다. -> K가 U보다 더 먼저 있으니 U는 가장 오른쪽에 놓는다.  규칙은 문자열의 .. 2024. 11. 11.
[Day14]JAVA 백준 거스름돈(14916번) https://www.acmicpc.net/problem/14916   백준 거스름돈을 풀기 위해서는 Greedy(탐욕법)을 활용해서 풀 수 있다.  Greedy 란 각 단계에서 최적의 선택을 하는 것인데 쉽게 생각하면 최적의 선택을 할 수 있는 규칙을 찾아내는 것이라고 생각하면 된다.  Greedy 의 대표 문제라고 할 수 있는 거스름돈은 큰 범위의 돈부터 거슬러줘서 최소의 동전을 사용하게 만드는게 최적의 방법입니다.  거스름 동전을 2원,5원으로만 준다고 하였으니 5원부터 주고 나머지 2원으로 주면 되겠다! 라고 생각하면 바로 다시 문제를 천천히 일어 보길 바란다.  13원일때 5원 1개 , 2원 4개  총 5개를 줘야 동전의 개수가 최소가 되는 것이다. 보통 13원이라고 하면 13/5 = 2 ,  .. 2024. 11. 10.
[Day13]JAVA- 백준 고양이는 많을수록 좋다(27961번) https://www.acmicpc.net/problem/27961  백준의 고양이는 많을수록 좋다❤️ 문제는 그리디 알고리즘으로 최적의 선택을 구하는 것이다. 근데 이 문제는 그리디 알고리즘이 무엇인지 몰라도 풀 수 있는 수준이다.  N마리의 고양이를 만들기 위해서는 2가지 방법이 있다. 1. 생성마법 : 1마리씩 추가2. 복제마법 : 현재 k 마리가 존재하면 , 0~k 까지의 마리 수 추가 가능 최소한으로 마법을 부려야 하니 복제마법으로 크게크게 추가 하는 것이 최적의 선택이라는 것을 파악하면 된다.  주의해야 할 점은 입력 값의 범위가 int 나 Integer을 사용하면 오류가 발생하는 범위 임으로 long으로 지정해줘야 한다.     1. 생성마법으로 1마리 2. 생성마법 혹은 복제 마법으로 (1.. 2024. 11. 10.
[Day12]JAVA- 백준 토마토 (7569번) BFS 활용 https://www.acmicpc.net/problem/7569 백준 7569번 문제는 BFS 를 활용해서 풀 수 있다. 3차원 배열이 나와서 당황할 수 있지만 침착하게 문제의 규칙을 찾으면 된다.  여기서 규칙은 토마토가 상, 하 , 좌 , 우 , 앞, 뒤 로 영향을 준다는 것이다. 3차원 배열이여서 이해가 어려울 수 있는데 콘서트 장이라고 생각해보면 상,하(H) 는 1층,2층..  을 나타내는 것이고 좌,우(M) 는 양 옆 을 나타내는 것이고 , 2차원에서는 열이라고 한다. 앞,뒤(N) 는 앞줄 , 뒷줄을 나타내는 것이고, 2차원에서는 행이라고 한다.  콘서트장 가면 어떻게 앉는가? 1층 앞줄부터 하나씩 앉지 않는다.  쉽게 생각해서 1층 앞줄 부터 자리를 채워간다고 생각하면 된다.  *혼자 힘으로.. 2024. 11. 9.
[Day11]JAVA- 백준 Yes or yes (25195번) DFS,BFS 활용 https://www.acmicpc.net/problem/25195 25195번 문제는 BFS , DFS 둘다 활용해서 풀 수 있다. https://h0wever.tistory.com/6 [알고리즘] DFS (깊이 우선 탐색) 이해DFS(Depth-First Search , 깊이 우선 탐색)- 시작 노드에서 자식의 노드들을 순서대로 탐색하면서 깊이를 우선으로 탐색하는 알고리즘 - 반복물을 활용하거나 재귀문을 통해서 구현된다 장점 :  현재h0wever.tistory.com 주의해야 하는 것은 단방향이고 , 팬클럽 곰곰이를 만나지 않고 이동하는 방법이 하나라도 존재한다면 "yes" 이다. DFS 방식을 이용한다면 4가지 경우를 고려해야한다.  처음 1 정점에 곰곰이 팬들이 있는 경우 -> 그 다음 어디로 .. 2024. 11. 8.