Algorithm 124

[프로그래머스] 메뉴 리뉴얼 - Java

문제 설명 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 회고 해당 문제를 풀기 위해 접근한 방법으로는 다음과 같습니다. 1. DFS를 이용하여 손님들이 주문한 메뉴들(String[] orders)로부터 구성 가능한 메뉴의 조합을 구합니다. - 이때 조합의 개수는 문제에서 주어지는 단품 메뉴 개수(int[] course)를 이용하여 정합니다. 2. HashMap을 이용하여 메뉴의 조합별 개수를 카운팅(counting))합니다. 3. 가장 많이 조합되었던 메뉴의 조합을 탐색합니다. 우선 특정 손님이 주문한..

[프로그래머스] 모음 사전 - Java

문제 설명 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 풀이 회고 해당 문제는 DFS를 이용하여 풀이할 수 있었습니다. 우선 문제에서 요구하는 것은 'A', 'E', 'I', 'O', 'U'로만 이루어져 있는 길이 1이상 5 이하의 단어 사전(사전순으로 정렬됨)에서 특정 단어를 찾고자 할 때 해당 단어가 몇 번째 단어인지를 구하는 것입니다. DFS를 통하여 A, E, I, O, U 사전순으로 조합된 단어들을 탐색했는데, 이때 하나의 단어(예를 들어, 'A')로..

[프로그래머스] 전력망을 둘로 나누기 - Java

문제 설명 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 풀이 회고 해당 문제는 BFS를 통해 해결할 수 있었습니다. 우선 해당 문제에서 요구하는 것은 특정 전선을 하나 끊었을 때 두 개로 나뉘어진 전력망의 송전탑의 개수의 차이에 대한 최솟값입니다. 이를 구하기 위해 문제에 접근한 방식으로는 다음과 같습니다. 1. 우선 송전탑의 개수 n이 2 또는 3인 경우 결과값이 n - 2로 정해져있으므로 이는 별도 if문으로 결과값을 반환하도록 했습니다. if (n == 2 || n == 3) { return n - 2..

[백준 - 6603] 로또 - Java

문제 설명 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 풀이 회고 우선 해당 문제에서 요구하는 것은 49가지 수(1~49) 중 임의의(7~12개의) 주어진 수들의 집합에서 6개의 수를 골라 만들 수 있는 경우의 수입니다. 즉, 주어진 수들에 대해 6개의 조합을 구하는 것입니다. 자바를 통해 조합을 구할 수 있는 방법에는 여러가지 방법이 있겠지만, 대표적으로 백트래킹을 이용하는 방법과 재귀함수를 이용하는 방법이 있습니다. 저 같은 경우에는 평상시 익숙한 '재귀함수'를 이용하여 문제에 접근해보았는데..

Algorithm/BOJ 2022.04.02

[백준 - 1043] 거짓말 - Java

문제 설명 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 풀이 회고 문제 이해하기 해당 문제는 '문제를 이해'하는데 많은 시간이 소요되었습니다. 😥 우선 문제에서 요구하는 것은 지민이가 과장된 이야기를 할 수 있는 파티의 수 즉, 진실을 아는 사람이 포함되어 있지 않는 파티의 수를 구하는 것입니다. 이때 중요한 점(놓치기 쉬운 점)은 최초 진실을 아는 사람이 포함되어 있는 파티에 다른 사람(최초 진실 구별 X)이 최초 진실을 아는 사람이 없는 다른 파티에 있더라도 지민이는 앞서 최초 진실을 아는 사람이 존재하기 때문에..

Algorithm/BOJ 2022.03.30