Recent Posts
Recent Comments
Link
- Today
- Yesterday
- Total
메이쁘
(JAVA) 백준 1759번 : 암호 만들기 본문
https://www.acmicpc.net/problem/1759
부분 조합을 이용하는 문제이다.
여기서 중요한 것은
1. 암호는 L 개의 알파벳으로 이루어져 있다.
2. 모음은 최소 1개, 자음은 최소 2개 가 암호에 포함되어 있어야 한다.
3. 암호 내 알파벳은 오름차순 정렬이 되어있다.
매커니즘
모음을 기준으로 만약 모음이 i개라면, 자음은 L - i 개가 되어야 한다.
예를 들어,
모음을 1개 뽑는 경우의 수 nC1 조합을 통해 원하는 모음 1개를 얻으면
자음은 자연스럽게 L - 1개를 뽑는 경우의 수 nC(L-1) 조합을 통해 원하는 자음을 L - 1개를 얻고
이 둘을 합친 문자열이 곧 암호이고 정답 중 하나가 된다.
** 알파벳이 오름차순 정렬이므로 String.toCharArray[] => Arrays.sort() => String.valueOf(CharArray) 를 통해
알파벳 오름차순 된 암호를 얻을 수 있다.
그래서 for문을 통해
모음을 1개부터 L - 2 개 까지 뽑아가며 진행하면 된다.
*** L - 2개까지만 뽑는 이유는 자음이 최소 2개 는 들어가야 하는 조건이 있기 때문이다.
쉽쥬!?
감사합니다.
소스코드
전체 소스코드 깃으로 보기
'Algorithm > Baekjoon' 카테고리의 다른 글
(JAVA) 백준 1342번 : 행운의 문자열 (0) | 2020.03.26 |
---|---|
(JAVA) 백준 9663번 : N-Queen (0) | 2020.03.26 |
(JAVA) 백준 2437번 : 저울 (0) | 2020.03.22 |
(JAVA) 백준 1543번 : 문서 검색 (0) | 2020.03.16 |
(JAVA) 백준 2468번 : 안전 영역 (0) | 2020.03.16 |
Comments