
문제 요약 C개의 알파벳이 주어지고 L개의 문자로 암호가 구성됩니다. 암호는 다음과 같은 특징을 가집니다. 1. 알파벳이 증가하는 순서대로 배열된다. 2. 최소 1개의 모음을 가지고 있다. 3. 최소 2개의 자음을 가지고 있다. 이 때 가능한 모든 암호를 출력하는 것이 문제이다. 내가 문제 풀 때 생각했던 것 이런 구현 문제는 조건만 순서대로 지켜준다면 답이 나옵니다. 이 문제는 완전 탐색이라 복잡하게 느낄 수도 있지만 Python만의 방식이면 쉽게 풀 수 있다고 느꼈습니다.일단 알파벳을 조합해야하므로 combination을 써야겠다고 생각했고 증가하는 순으로 배열해야하기 때문에 sort도 생각했습니다. 또한 모음을 주의해서 신경써야하므로 따로 선언해놓고 문제를 푼다면 수월하게 풀 수 있다고 생각했습니다..

문제 요약 주어진 입력인 알파벳에 숫자를 대입하여 가장 큰 합을 찾아내는 것입니다. 분류는 브루트포스로 나와있지만 자릿수에 따라 바로바로 수를 대입한다고 생각하면 그리디 알고리즘이라 생각할 수 있습니다. 내가 문제 풀 때 생각했던 것 자릿수에 따른 숫자 대입이라 생각했습니다. 어짜피 6 + 7 이나 7 + 6 이나 같고 178 + 456 이나 158 + 476 이나 결과는 634로 같기 때문에 자릿수가 같을 때의 숫자는 상관 없다고 풀었습니다. 그래서 길이를 기준으로 정렬하고 길이가 가장 긴(= 자릿수가 가장 큰) 단어의 앞자리는 가장 큰 수인 9를 저장하고 앞자리만 없앴습니다. 그 다음으로 길이가 가장 긴 단어의 앞자리는 8을 저장하는 등 소거법으로 문제를 해결했습니다. 1차 풀이 from collec..
- Total
- Today
- Yesterday