2020. 7. 3. 02:03ㆍ프로그래머스 코테
먼저 문제를 처음읽고 쉬워보였다. 그래서 바로 풀려는순가 어떻게 풀어야할지 모르겠어서 다시 문제를 보니 생각보다 많이 어렵다는걸 느꼈다.. 어제 풀었던 정렬문제가 Level 1이였는데 이건 Level2라는걸 간과하고 있었다.
내가 알고있는 자바 함수중에선 이 문제를 풀 수있는 함수가 없었기에 함수를 만들어서 풀까했지만 구글링을 해본결과 정렬을 재정의 하는 Comparator를 찾았고 , 문제를 풀 수 있었다.
기본적인 Arrays의 sort함수로는 앞의자리의 숫자를 비교할수없었기에 새로운 함수를 정의했어야했다.
s1 앞의 수와 s2 뒤에숫자를 위치를 바꿔서 큰숫자를 return해주는 함수를 만들었다.
그리고 21번째 줄의 소스는
정렬을 하였으면 가장 앞자리가 큰 숫자가 arr[0]에 담기게 되는데 0이라는 것의 의미는 숫자가 0000 처럼 0으로만 구성되었다는 의미이므로 0을 return 해줍니다.
그리고 순차적으로 answer에 String으로 배열값들을 넣어줍니다.
배운 점
-이번엔 Comparator라는 함수를 사용해볼수있었고 나만의 정렬 함수가 필요하다면 이런식으로 함수를 선언하여 정렬방법을 정의할 수 있다는것을 해볼수 있었습니다. 이전에 입출력 예에서 "9534330" 이아니라 "9534303"이 나와서 많이 헤매다가 이 방법을 알게되어서 해결할 수 있었다.
Arrays에있는 스트링 정렬 방식인데 이걸 사용하면
이런식으로 나왔었다. 이렇게 계속 샐패하다가 Comparator를 사용해보니 더 큰 깨달음을 얻게 되었다.
'프로그래머스 코테' 카테고리의 다른 글
프로그래머스 K번째 수 (0) | 2020.07.01 |
---|