풀이
- 해당 문제는 포스팅은 따로 작성한 이유는
- 방법에 대하여 포스팅을 해두면 기억을 오랫동안 할 수 있을 것 같아서
- 따로 포스팅을 하게 되었습니다.
- 우선 배열을 뒤집는 방법은 다양하게 있지만
- 자바는 파이썬 처럼 모든 배열을 reverse() 이렇게가 안되고, 타입에 따른 reverse()가 있기에
- 해당 문제로 받아오는 배열은 int[] 이었기에 int[] 타입의 배열을 따로 하나 더 만든 다음
- Arrays.setAll()을 사용해서 변경하기로 했다.
- 첫 번째 인자로는 변경하고자 하는 배열, 두 번째 인자로는 인덱스를 넣어 주고
- 해당 메서드는 return값이 null 이기에 실행 후 변경된 배열을 return하여 해결
- 그리고 문자열 뒤집기의 경우엔
- StringBuilder에도 reverse()가 있는지 모르고
- 우선은 효율적인 것을 포기하고 단순하게 toCharArray()로 만든
- char[] 배열에 해당하는 문자를 String 타입 변수에 더하여 해결했는데
- StringBuilder를 활용하여 문자를 reverse()하고 toString()으로 return하여 해결.
- 역시 String을 다룰때 값을 계속 추가하게 되면 새로운 객체를 생성하는 것이기에
- 시간 효율이 좋지 않은데 StringBuilder를 사용하게 되면 효율적으로 좋기에
- 아래 코드와 같이 사용하는 것이 좋다.
배열 뒤집기
import java.util.*;
class Solution {
public int[] solution(int[] num_list) {
int[] result = new int[num_list.length];
Arrays.setAll(result,i -> num_list[num_list.length-1-i]);
return result;
}
}
문자열 뒤집기
import java.util.*;
class Solution {
public String solution(String my_string) {
String answer = "";
char[] li = my_string.toCharArray();
for (int i =my_string.length()-1; i>=0; i--) answer+= li[i];
return answer;
}
}
import java.util.*;
class Solution {
public String solution(String my_string) {
StringBuilder sb = new StringBuilder();
sb.append(my_string);
sb.reverse();
return sb.toString();
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바] 특이한 정렬 (1) | 2024.03.19 |
---|---|
[프로그래머스, 자바] 배열 자르기 (0) | 2024.03.16 |
[프로그래머스, 자바] 외계어 사전 (0) | 2024.03.15 |
[프로그래머스, 자바] 캐릭터의 좌표 (0) | 2024.03.15 |
[프로그래머스, 자바] 로그인 성공? (0) | 2024.03.15 |