Algorithm/HackerRank

세무민의 코딩일기 : [HackerRank] Sales by Match 문제 풀기

세기루민 2021. 1. 29. 14:05
728x90

백준 사이트를 먼저 풀어봐야 하는데

최근에 알고리즘 테스트를 봤던 회사의 문제가 모두 영어로 제공해줬는데... 

문제가 영어라는걸 몰랐던 나는.. 멘붕과 해석도 재대로 못해서 시간을 날려버린 결과로 시험을 망쳤다...

비록 내가 공부를 안한것도 문제이지만...

 다음에는 영어로 시험보는 회사를 대비하기 위해 시작했다. 

 


오늘 풀어볼 문제는 Sales By Match 

해석을 어려워하는 나에게는 구글 번역기가 있으니 ㅎㅎ 

우선 N과 Arr는 주어진다. 

그렇기 때문에 알고리즘만 신경쓰면 되는데 

문제를 간단하게 설명해보면 

배열내에서 같은 값끼리 묶었을 때 나올 수 있는 묶음의 개수를 구하면 된다. 

해당 문제에서 제공해주는 Sample인데 

위의 그림처럼 같은 값이 2개가 존재한다면 묶을 수 있으나 

2개가 안된다면 묶을 수 없다. 

위에서는 3묶음이 가능하기 때문에 답은 3개가 나올 수 있다. 

우선 위에 코드처럼 풀었다. 

풀이를 예를 들어서 설명해보면 

a = [10, 20, 30, 10] 라고 가정해보자. 

처음에 a[0]에서 시작할 때 checkList에 값을 1개 넣어준 후

모든 리스트를 탐색하면서 같은 값이 존재한다면

방문했다고 체크 후 다음에 탐색하지 않도록 해주고 checkList에 1을 추가해줬다.

따라서 a[0]와 동일한 a[3]가 존재하기 때문에 checkList는 2가 되고 

결과적으로 묶음은 1개가 된다. 

 

코드를 Submit를 하면 TestCase가 모두 일치한다면 위와 같이 알고리즘이 수락된것을 확인할 수 있다. 


하루에 꾸준히 푸는게 목표인데 

풀고 정리가 되는대로 포스팅 하도록 하겠습니다! 

 

728x90