Algorithm/Programmers93 [2020 카카오 기출] 경주로 건설(JAVA) programmers.co.kr/learn/courses/30/lessons/67259 DP 문제입니다. 저는 dp 상태를 아래와 같이 정의했습니다. dp[dir][y][x]: board[y][x]에 경주로를 놓았고 현재 진행중인 방향은 dir인 상태입니다. dir은 UP LEFT DOWN RIGHT 4가지 상태중 하나를 가지게 됩니다. 경주로를 놓기 위해 새로운 칸을 탐색할 때 총 3방향을 탐색할 수 있습니다. 1. 온 방향 그대로 진행 2. 온 방향과 90도를 이루는 방향 진행 그리고 그 때 마다 금액을 쌓아주면 됩니다. 단 제가 구하는 방식의 경우 코너 도로를 놓을 때 100원씩이 누락됩니다. 예를 들어, ㅣ ㄴ ㅡ 이렇게 3개의 도로를 놓는다고 할 때 총 700원이 들어야 하지만, 제가 구현한 방.. Algorithm/Programmers 2021. 5. 11. [2020 카카오 기출] 수식 최대화(JAVA) programmers.co.kr/learn/courses/30/lessons/67257 시뮬레이션 문제입니다. 연산자가 최대 3개이므로 나타날 수 있는 우선순위 경우의 수는 6개입니다. 생길 수 있는 모든 우선순위 경우의 수로 연산을 한 뒤 최댓값을 구하면 됩니다. 코드: github.com/cotchan/algorithm/blob/main/java/PROGRAMMERS/PG67257.java Algorithm/Programmers 2021. 5. 10. [2019 카카오 기출] 실패율(JAVA) programmers.co.kr/learn/courses/30/lessons/42889 스테이지의 갯수 제한이 작으므로 스테이지 크기만큼 배열을 선언해도 됩니다. N개의 스테이지에 대해 성공한 사람의 인원 수, 실패한 사람의 인원 수를 저장해놓는 방식으로 해결했습니다. 코드: github.com/cotchan/algorithm/blob/main/java/PROGRAMMERS/PG42889.java Algorithm/Programmers 2021. 5. 4. [2019 카카오 기출] 불량 사용자(JAVA) programmers.co.kr/learn/courses/30/lessons/64064 1. banned_id 리스트를 퍼뮤테이션을 돌려서 user_id 사이즈만큼만 가지고 옵니다. 이 배열을 permu_banned_id라고 하겠습니다. 2. 그 다음은 user_id와 permu_banned_id를 비교해서 모두 일치하면 이게 정답 1개를 의미합니다. 그래서 1번의 갯수만큼 루프를 돌려서 2번이 나온 만큼이 정답이 됩니다. 주의점은 하나의 user_id가 여러 개의 banned_id에 걸릴 수 있습니다. 그래서 순열이나 조합을 통해 반드시 모든 user_id banned_id 쌍을 비교해줘야 합니다. 코드: github.com/cotchan/algorithm/blob/main/java/PROGRAMMER.. Algorithm/Programmers 2021. 5. 4. [2018 카카오 기출] 파일명 정렬(JAVA) programmers.co.kr/learn/courses/30/lessons/17686 시뮬레이션 문제입니다. 저는 File이라고 하는 별도의 클래스를 선언했고 아래와 같이 네 부분으로 나눠습니다. 첫 문자 부분(String HEAD) 숫자 부분(int NUMBER) 배열 안에 들어있던 순서(int isbn) 원래 파일명(String origin) 파싱하는 게 번거로운 편이고 파싱 후에 문제 조건대로 정렬해주면 됩니다. 코드: github.com/cotchan/algorithm/blob/main/java/PROGRAMMERS/PG17686.java Algorithm/Programmers 2021. 4. 28. [2018 카카오 기출] 캐시(JAVA) programmers.co.kr/learn/courses/30/lessons/17680 시뮬레이션 문제입니다. 우선 캐시 사이즈가 0인 경우에는 도시의 수 * 5로 바로 처리해주면 됩니다. MAXIMUM 캐시 크기는 30으로 작습니다. 그러므로 캐시에서 지울 후보를 고를 때 캐시를 전부 순회하면서 탐색해도 시간초과가 나지 않습니다. 이 부분만 유념해서 시간 카운팅하시면 될 것 같습니다. 코드: github.com/cotchan/algorithm/blob/main/java/PROGRAMMERS/PG17680.java Algorithm/Programmers 2021. 4. 26. 이전 1 2 3 4 5 6 7 8 ··· 16 다음