2022 KAKAO BLIND RECRUITMENT 파괴되지 않은 건물 링크 : https://programmers.co.kr/learn/courses/30/lessons/92344 사용 언어 : JAVA 문제 설명 N x M 크기의 행렬 모양의 게임 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있다. 적은 이 건물들을 공격하여 파괴하려고 하고, 반대로 아군은 회복 스킬을 사용하여 건물들의 내구도를 높이려 한다. 건물은 적의 공격을 받으면 내구도가 감소하고 내구도가 0이하가 되면 파괴된다. 적의 공격 혹은 아군의 회복 스킬이 모두 끝난 뒤 파괴되지 않은 건물의 개수를 구하라. 첫 번째 스킬: 적이 맵의 (0,0)부터 (3,4)까지 공격하여 4만큼 건물의 내구도를 낮춤 두 번째 스킬: 적이 맵의 (2,0..
문제 (1194번) 달이 차오른다, 가자 링크 : https://www.acmicpc.net/problem/1194 사용 언어 : JAVA 내 생각 초기 생각 옛날에 풀었던 아기상어와 비슷하게 풀면 되겠다고 생각했다. 근데 visited 배열을 어떻게 만들어야할지 당최.. 알 수가 없었다. (다른 문제를 풀어도 항상 여기서 막힌다..ㅎ) 그래서 위의 방법이 아닌가? 하면서 dfs로도 풀어보고 stack도 사용해보고 여튼 별 짓 다함 개선 비트 연산자를 활용해야 한다는 힌트를 듣고, visited 배열에 key 보유 상태를 나타내는 차원을 추가했다. 3차원 배열을 사용할 때마다 안터지나..? 하고 조마조마한데 생각보다 잘 안터지는 듯. 최종 bfs/dfs 문제는 푸는 방식이 거의 정해져 있다. bfs로 탐..
문제 (11053번) 가장 긴 증가하는 부분 수열 링크 : https://www.acmicpc.net/problem/11053 사용 언어 : JAVA 내 생각 이 문제는 종만북에서 본 문제라서 어렵지 않게 풀 줄 알았는데 본지 너무 오래되어서 다 까먹고 책이랑 비교하며 풀 수 있었다.그런데 최근에 다른 백준 문제를 풀다가 다른 방법이 있다는 것을 알았다.(후에 포스팅 올릴 것...) 사실 둘이 탐색 방향만 다를 뿐 같은 아이디어라 해도 무방하다. 먼저 종만북의 알고리즘이다. S[0...n-1]을 차례로 탐색하며 S[start]보다 큰 S[next]를 찾고, 그 next에서 시작하는 lis의 길이에 1을 더하는 것이다. 재귀함수를 호출하며 메모이제이션을 적용하면 더 빠른 시간에 답을 찾을 수 있다. 이때 ..
문제 (15954)인형들 링크 : https://www.acmicpc.net/problem/15954 사용 언어 : JAVA 카카오프렌즈 스토어를 관리하는 브라이언은 어떠한 특정한 곳에 인형들을 배치하고자 하는데, 그곳에 인형들을 선택하는 방법은 다음과 같다. 먼저 비슷한 인형이 가깝게 위치하도록 서로 다른 N개의 인형을 종류당 한 개씩 일렬로 배치한다. 그 후, 선호하는 사람의 수의 표준편차가 최소가 되는, K개 이상의 연속된 위치에 있는 인형들을 선택하여 그들을 같은 곳에 배치한다. 위의 방법으로 인형들을 선택했을 때, 선택된 인형들의 선호하는 사람의 수의 표준편차를 구하여라. 입력 값 첫 번째 줄에 N과 K가 주어진다. N은 1 이상 500 이하의 정수이고, K는 1 이상 N 이하의 정수이다. 두 ..
문제 (15953)상금 헌터 링크 : https://www.acmicpc.net/problem/15953 사용 언어 : JAVA 제이지는 자신이 코드 페스티벌에 출전하여 받을 수 있을 상금이 얼마인지 궁금해졌다. 그는 자신이 두 번의 코드 페스티벌 본선 대회에서 얻을 수 있을 총 상금이 얼마인지 알아보기 위해, 상상력을 발휘하여 아래와 같은 가정을 하였다. 제1회 코드 페스티벌 본선에 진출하여 a등(1 ≤ a ≤ 100)등을 하였다. 단, 진출하지 못했다면 a = 0으로 둔다. 제2회 코드 페스티벌 본선에 진출하여 b등(1 ≤ b ≤ 64)등을 할 것이다. 단, 진출하지 못했다면 b = 0으로 둔다. 제이지는 이러한 가정에 따라, 자신이 받을 수 있는 총 상금이 얼마인지를 알고 싶어한다. 입력 값 첫 번..