728x90
문제
풀이
풀이 1
- 인덱스 n 번째 글자를 각 문자열 맨 앞에 추가하여 정렬시키면 자동적으로 n 번째 문자 사전순 정렬 + 나머지 원래 문자열 사전식 정렬 된다.
- 하지만 이 방법은 뒤에 나올 다른 방법에 비해 시간이 오래걸린다.
코드1
풀이2
- 정렬할 때 Comparator를 사용하는 방법이다.
- Comparator는 기본적으로 Object를 매개변수로 사용한다. 따라서 primitive 타입은 wrapper 클래스를 이용해 Object로 만들어서 매개변수로 넘겨야 한다.
- C++로 알고리즘 문제를 풀던 당시에 compare 함수를 이용해 sort하는 방식으로 사용하였지만, Java로 사용 언어를 바꾸고 나서 어떻게 하는지 몰라 좋은 예시 코드들을 찾아보았다.
자바에서 정렬할 때 Comparable 을 상속하는 방법과 Comparator 를 사용하는 방법 등 많은 방법이 있는데,
여러 방법을 알아둬야 할 것 같다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 - JAVA]연습문제 - Level 1 문자열 내림차순으로 배치하기 (0) | 2020.11.05 |
---|---|
[프로그래머스 - JAVA]연습문제 - Level 1 문자열 내 p와 y의 개수 (0) | 2020.11.05 |
[프로그래머스 - JAVA]연습문제 - Level 1 두 정수 사이의 합 (0) | 2020.11.04 |
[프로그래머스 - JAVA]연습문제 - Level 1 나누어 떨어지는 숫자 배열 (0) | 2020.11.04 |
[프로그래머스 - JAVA]연습문제 - Level 1 같은 숫자는 싫어 (0) | 2020.11.04 |
최근댓글