간단하게 오늘 배운 내용만 적는다는 걸.. 길게 포스팅을 해 버렸다..
오늘부터는 내가 알게 된 내용만 간단히 적을 예정이다 ...
원래 알고리즘을 python 을 가지고 풀었었다.. 파이썬이 자료형을 다루기도 편하고, 자동완성이 없어도 간단하게 잘 사용을 할 수 있기 때문이였다.. 자바같은 경우는 import, 함수 이름이 헷갈리기도 하고 해서 오늘부터는 내가 푼 문제를 자바로 한번 풀어보려고 하면서 배운 내용을 정리해 볼 예정이다..
프로그래머스의 문자열 내 마음대로 정렬하기 문제이다.
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
String[] answer = {};
Arrays.sort(strings, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return a.charAt(n) - b.charAt(n) == 0 ? a.compareTo(b) : a.charAt(n) - b.charAt(n);
}
});
return strings;
}
}
comparator 를 안의 compare를 재정의 해였다. 근데 문제에서 인덱스가 같을 경우는 사전순으로 앞선 문자열이 앞쪽에 위치한다라는 조건때문에 조금 애를 먹었다.
정렬을 2번 하는건 좀 말이 안 되는것 같았다..
매개변수 1 - 매개변수 2 -> 오름차순
매개변수 2 - 매개변수 1 -> 내림차순
compareTo() 메소드를 사용했는데 특징이 있었다.. 문자열의 경우 0,-1, 1을 반환하는게 아니라 차이만큼을 반환했다. 물론 쓸일은 없어보이지만 일단 외워둬야겠다.
이것 말고도 간단하게 몇문제를 풀어보았다