알고리즘 공부

[백준 1062번] 가르침 - java

철매존 2021. 5. 9. 00:01
728x90
반응형

문제 설명

1. 전체 단어 N, 가르칠 수 있는 글자 K가 주어진다.

2. 모든 단어는 'anta'로 시작되고, 'tica'로 끝난다.

3. 학생이 배울 수 있는 최대 단어의 개수를 return한다.

 

 

풀이 과정

 1. 먼저 'a', 'n', 't', 'i', 'c' 다섯 글자는 공통적으로 들어가야 한다.

 2. 기준을 글자로 잡고, 글자들에 따라 배울 수 있는 단어들을 return하면 될 것이다.

 3. 예를 들어 7글자를 가르치고, 3개의 단어라고 한다면 

   ex ) - 위의 5글자는 무조건 배우게 된다.

         - 따라서 추가로 2글자를 더 배우는 모든 경우를 구하면 될 것이다.

 

         a~z까지 확인하여 배우지 않은 경우 가르친다.

         1 - 'a' 'b' 'c' 'd' 'n' 't' 'i'

         2 - 'a' 'b' 'c' 'e' 'n' 't' 'i'  

         3 - 'b'로 진행하는 경우 모두 수행

         4 - 'a' 'c' 'e' 'f' 'n' 't' 'i'

         5 - 이런 식으로 K(여기서는 5개를 이미 배우니 K-5) 개의 숫자만큼 배우지 않은 단어들을 배우며, 해당 단어가 있으면 check하면 될 것이다.

 4. 이렇게 해서 구한 방법 중 가장 큰 값 return한다.

 

코드

반응형