알고리즘/BOJ

백준 13718번 Tavan

꾸준함. 2021. 4. 17. 01:01

문제 링크입니다: www.acmicpc.net/problem/13718

 

13718번: Tavan

The possible words, in aphabetical order, are: “pololjeni”, “pololjeui”, “pololjezi”, “poooljeni”, “poooljeui”, “poooljezi”, “posoljeni”, “posoljeui”, “posoljezi”. 

www.acmicpc.net

모듈러 연산을 통해 풀 수 있는 문제였습니다.

 

알고리즘은 아래와 같습니다.

 

1. 입력값들을 입력받습니다.

 

2. M개의 후보 알파벳들을 사전 순서대로 정렬을 진행해주고 우선, #들을 각 후보들 중 가장 사전 순으로 앞선 알파벳으로 채웁니다.

-> 즉, X개의 문자열 중 첫 번째 문자열로 우선 초기화해줍니다.

 

3. 이제 X번째를 구하기 위해서는 마지막 #부터 첫 번째 #까지 순서대로 맞춰줘야합니다.

3.1 각 #은 사전 순으로 정렬된 후보 알파벳 중 X % K 번째 알파벳입니다.

3.2 X를 K로 나눕니다.

3.3  3.1 ~ 3.2 과정을 X가 0이 될 때까지 반복해주면 X 번째 문자열을 구할 수 있습니다!

 

* 이 문제는 알고리즘에 따라 직접 해보시면 이해가 쉽게 가실 것입니다!

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형