✏️ 문제당신은 비밀 조직의 보안 시스템을 뚫고 중요한 정보를 해독해야 합니다. 시스템은 1부터 n까지의 서로 다른 정수 5개가 오름차순으로 정렬된 비밀 코드를 가지고 있으며, 당신은 이 비밀 코드를 맞혀야 합니다.당신은 비밀 코드를 알아내기 위해 암호 분석 도구를 사용하며, m번의 시도를 할 수 있습니다. 각 시도마다 서로 다른 5개의 정수를 입력하면, 시스템은 그 중 몇 개가 비밀 코드에 포함되어 있는지 알려줍니다.만약 비밀 코드가 [3, 5, 7, 9, 10]이고, 입력한 정수가 [1, 2, 3, 4, 5]라면 비밀 코드에 포함된 정수는 3, 5 두 개이므로 시스템은 2를 응답합니다.당신은 m번의 시도 후, 비밀 코드로 가능한 정수 조합의 개수를 알고 싶습니다.비밀 코드에 사용된 정수의 범위가 1~..
✏️ 문제 🔢 알고리즘 #시뮬레이션 #해시맵 🤯 풀이 방법points: 운송 포인트들의 좌표routes: 로봇이 어느 포인트를 거쳐야 하는지찾아야 하는 것: 위험 상황의 발생 횟수 1) 각각의 route에 대해서 경로 배열을 만든다. (이동 포인트 이용해서) - 순회할 때 인덱스를 전체 값보다 하나 작게 잡아서 현재 값 기준으로 다음 값까지 이동 경로를 체크하게 함2) 만들어진 경로 배열을 인덱스별로 확인해서 겹치면 위험 상황 +1, 반복문 종료 - 같은 좌표에 많은 값이 충돌해도 하나의 충돌로 체크해서 HashMap 사용해서 경로에 대한 등장 횟수를 세는 방식으로 했음경로 계산은? ex) 1,4에서 6,4로 이동하려면: r 하나씩 증가 기본적으로 행 먼저 이동, 그다음 열 이동 처음에는 전..
✏️ 문제 🔢 알고리즘 #이진탐색 🤯 풀이 방법제한 시간 내에 퍼즐을 모두 해결하기 위한 숙련도의 최솟값을 구한다. 최솟값을 구하려면 특정 값에서는 진행이 불가할 때 그 값보단 커야 하고, 가능한 값 중에서는 제일 작아야 한다 그러면 1) 하나씩 올렸다 내린다 2) 특정 기준으로 값을 왔다갔다 해본다 > binary? > binary 하는 경우 0부터 가장 큰 diff를 기준으로 시작한다. 제출 후 테스트케이스 14에서 틀리는 경우: 숙련도는 1부터 시작해야 한다..제출 전 테스트케이스 마지막 틀리는 경우: 이진탐색 start 👾 구현 코드 (자바)import java.util.*;class Solution { public int solution(int[] diffs, int[] ..
✏️ 문제 🔢 알고리즘 #힙 #자료구조 🤯 풀이 방법 1. 자바의 힙은 PriorityQueue를 이용해서 구현한다.2. 메소드는 offer, add, poll, peek 등 사용3. 마지막 원소만 남았을 때 -1 출력 예외 처리 잊지 않기4. 프로그래머스 AI가 유용하다 👾 구현 코드 (자바)import java.util.*;class Solution { public int solution(int[] scoville, int K) { int answer = 0; PriorityQueue minHeap = new PriorityQueue((a, b) -> a - b); for (int num : scoville) { ..
✏️ 문제각 칸마다 색이 칠해진 2차원 격자 보드판이 있습니다. 그중 한 칸을 골랐을 때, 위, 아래, 왼쪽, 오른쪽 칸 중 같은 색깔로 칠해진 칸의 개수를 구하려고 합니다.보드의 각 칸에 칠해진 색깔 이름이 담긴 이차원 문자열 리스트 board와 고른 칸의 위치를 나타내는 두 정수 h, w가 주어질 때 board[h][w]와 이웃한 칸들 중 같은 색으로 칠해져 있는 칸의 개수를 return 하도록 solution 함수를 완성해 주세요.이웃한 칸들 중 몇 개의 칸이 같은 색으로 색칠되어 있는지 확인하는 과정은 다음과 같습니다. 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 🤖 알고리즘 #배열 #탐색..
✏️ 문제어떤 게임에는 붕대 감기라는 기술이 있습니다.붕대 감기는 t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복합니다. t초 연속으로 붕대를 감는 데 성공한다면 y만큼의 체력을 추가로 회복합니다. 게임 캐릭터에는 최대 체력이 존재해 현재 체력이 최대 체력보다 커지는 것은 불가능합니다.기술을 쓰는 도중 몬스터에게 공격을 당하면 기술이 취소되고, 공격을 당하는 순간에는 체력을 회복할 수 없습니다. 몬스터에게 공격당해 기술이 취소당하거나 기술이 끝나면 그 즉시 붕대 감기를 다시 사용하며, 연속 성공 시간이 0으로 초기화됩니다.몬스터의 공격을 받으면 정해진 피해량만큼 현재 체력이 줄어듭니다. 이때, 현재 체력이 0 이하가 되면 캐릭터가 죽으며 더 이상 체력을 회복할 수 없습니다.당신은 붕대감기 기술의..