Algorithm/HackerRank

세무민의 코딩일기 : [HackerRank] Repeated String 문제 풀기

세기루민 2021. 2. 2. 11:23
728x90

www.hackerrank.com/challenges/repeated-string/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=warmup

 

Repeated String | HackerRank

Find and print the number of letter a's in the first n letters of an infinitely large periodic string.

www.hackerrank.com

우선 위에 사이트에 접속하면 문제를 직접 볼 수 있습니다.


이번에 풀은 문제는 Repeated String! 

사실 난이도가 쉽다고 써있지만..... 체감상 어렵다.....

문제는 위와 같습니다. 

그래도 생각보다 오래걸리지 않았습니다. 

문제에 대해 샘플 값입니다. 

위에 문제와 샘플을 보고 요약하자면 

우선 S라는 String 값을 받습니다. 

다음으로는 N이라는 크기만큼 반복하여 늘려주는데 

가장 첫번째로 입력된 값이 반복될 수 있는 회수를 구하면 된다.

즉! s = aba, n = 10이라는 예제를 보면 

n만큼 크기를 늘렸을 떄 -> abaabaabaa

따라서 a의 개수는 7개가 되는 것을 볼 수 있습니다.


위의 문제를 해석하는데 5분정도 걸렸어요....

생각보다 문제를 이해했으나 쉽게 접근하기 어렵더라구요....

우선 repeatedString이라는 함수만 채워주면 됩니다. 

제가 접근한 방식은 첫번째 숫자가 무조건 a라는 조건을 인지하고 

checkPoint를 생성하여 S에서 a의 개수를 체크한 후 

전체 개수를 S의 길이만큼 나눠줍니다. 

나눴을 때 나온 몫은 checkPoint와 곱해주면 

S에서 존재하는 a값을 N개까지 반복했을 때 나올 수 있는 값을 쉽게 구할 수 있기 때문입니다. 

그렇다면 N개가 정확하게 떨어지지 않고 나머지가 존재하는 경우도 존재하기 때문에 

나머지 값에 대해서 반복문을 돌려서 a의 개수를 체크해주면 끝! 


위의 코드를 서브밋한 결과로 성공!

우선 다음에도 다른 알고리즘으로 포스팅할 예정이지만...

HackerRank 뿐만 아니라 백준도 틈틈히 풀어봐야겠다는 생각이 들었습니다.

다음에는 더 좋은 포스팅으로 찾아오겠습니다~

728x90