정말 오랜만에 프로그래머스에서 몸풀기를 해보았다. 이번 문제는 정답률 대비 정답자가 적은 문제여서 선택해보았다. 문제 arr 원소마다 delete_list를 반복시켜 해당 숫자가 존재하는지 체크하는 방식으로 중복 원소를 걸러내고 남은 arr을 리턴하는 방식으로 해결했다. 물론 이 때, arr을 mutableList로 바꿔서 작업했다. 풀이 arr을 MutableList로 바꾼 후 중복 검사에서 걸린 원소는 remove를 한 뒤, 문제의 요구 사항에 맞춰 IntArray로 형변환 후 리턴해주었다. 실행 결과
오늘은 정렬 기능을 사용해야하는 문제였다. 문제 이전 문제들을 풀때 사용했던 방식을 가져와 일단 n을 MutableList에 하나씩 각 자리의 수를 추가해주었다. 그렇게 완성된 MutableList를 내림차순으로 정렬하려고 찾아보았더니 먼저 sort() 메소드를 통해 오름차순으로 정렬하고 reverse() 메소드로 역순 정렬을 할 수 있었다. 이렇게 내림차순으로 완성한 MutableList를 비어있는 String 변수에 0번 인덱스부터 차례대로 추가해주었고 이를 Long타입으로 변환하여 리턴될 answer 변수에 대입해주었다. 풀이 println 주석은 만든 MutableList가 내림차순까지 정렬이 되었는지 보기 위해 작성해보았다.
오늘 푼 문제는 코틀린의 collections를 잘 사용해야하는 문제였던 것 같다. 문제 처음 문제를 보니 제출 코드에 이미 리턴될 IntArray형 변수가 생성되어 있길래 이 틀을 깨지 않는 선에서 리턴될 배열 길이를 정하려다 보니 당최 길이를 정해야하는 배열의 특성때문에 방법이 떠오르지 않았다. 최근에 Array나 MutableList를 여러번 사용해봐서 그런지 이전에 코틀린 공식 페이지에서 자료를 찾아봤고 몇몇 메소드가 머리 속 저편에 숨어있었는데 기억이 났다. 그래서 떠올린 방법은 arr에서 divisor로 나머지 연산 결과가 0인 녀석들을 MutableList에 추가하고 추가된 MutableList를 IntArray로 변환해 리턴하는 것이었다. 여기서, 고려할 점이 하나 더 있었는데 만약 나누어..