줄 서는 방법(Lv.2)
문제 설명 입출력 예시 요약 n명의 사람을 n!(factorial)만큼 가지수로 나열했을 경우 k번째 나열 순서 리턴 풀이 접근 방식 1. 각 인덱스의 숫자가 얼마의 반복 주기를 갖는지 확인 → n = 4의 경우 {1, 2, 3, 4} / {1, 2, 4, 3} / {1, 3, 2, 4} / {1, 3, 4, 2} / {1, 4, 2, 3} / {1, 4, 3, 2} / {2, 1, 3, 4} / ... → 첫 번째 숫자의 경우 6개, 두 번째 숫자의 경우 2개, 세 번째와 네 번째는 각각 1개의 반복 사이클을 갖는다. → n = 4의 경우 반복되는 사이클을을 배열로 나타내면 {(n-1)!, (n-2)!, (n-3)!, (n-4)!} 임을 확인 할 수 있다. 2. k를 통해 각 인덱스에 해당하는 숫자 구..
2024. 4. 15.
모음사전(Lv.2)
문제 설명 입출력 예시 요약 A, E, I, O, U 모음을 가지고 만들 수 있는 1~5 자리의 모든 조합(경우의 수) 구하기 풀이 접근 방식 1. 순서 파악 → A, AA, AAA, AAAA, AAAAA, AAAAE, AAAAI, AAAAO, AAAAU, AAAE, AAAEA, AAAEE, AAAEI, AAAEO, ... → dfs로 length가 5가 되면 return 2. dfs 메소드 구현 → 재귀 방식을 통한 모든 조합을 구하는 dfs 메소드 구현 코드리뷰 import java.util.*; public class Solution { String[] arr = {"A", "E", "I", "O", "U"}; List list = new ArrayList(); public void dfs(Stri..
2024. 3. 25.