728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181890
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public String[] solution(String[] str_list) {
String[] answer = new String[str_list.length];
int answerIndex = 0;
List<String> strList = new ArrayList<>(Arrays.asList(str_list));
for (int i = 0; i < str_list.length; i++) {
if (str_list[i].equals("l")) {
if( i != 0){
for (int j = 0; j < i; j++) {
answer[answerIndex] = str_list[j];
answerIndex++;
}
return Arrays.copyOf(answer, answerIndex);
}else {
return new String[0];
}
}else if (str_list[i].equals("r")) {
if(i != str_list.length-1){
for(int j = i+1; j<str_list.length; j++) {
answer[answerIndex] = str_list[j];
answerIndex++;
}
return Arrays.copyOf(answer, answerIndex);
}else{
return new String[0];
}
}else if (!strList.contains("l") && !strList.contains("r")){
return new String[0];
}
}
return Arrays.copyOf(answer, answerIndex);
}
}
경우의 수를 일일이 따져가며 푼 문제.
다른 사람의 풀이를 보니 Arrays.copyOf( ) 메서드를 좀 더 잘 사용했더라면 더욱 짧게 끝낼 수 있었던 듯
Arrays.copyOf()
- 자바에서 배열을 복사하고 새로운 길이로 조정하는데 사용되는 메서드
- 기존 배열의 내용을 새 배열로 복사하거나, 배열의 크기를 늘리거나 줄일 수 있음
public static <T> T[] copyOf(T[] original, int newLength)
- original : 복사할 배열
- newLength : 새 배열의 길이
예시 )
int[] originalArray = {1, 2, 3, 4, 5};
int[] newArray = Arrays.copyOf(originalArray, 7);
// newArray = {1, 2, 3, 4, 5, 0, 0}
Arrays.copyOf() 의 반환형 ?
Arrays.copyOf(배열,길이) 의 반환형은 void 이기 때문에 반환시 주의해야한다.
Arrays.copyOfRange()
public static <T> T[] copyOfRange(T[] original, int from, int to)
- original : 복사할 배열
- from : 복사를 시작할 인덱스(포함)
- to : 복사를 끝낼 인덱스(미포함)
*반환값 : 복사된 요소들을 포함하는 새로운 배열 반환
예시 )
int[] originalArray = {1, 2, 3, 4, 5};
int[] newArray = Arrays.copyOfRange(originalArray, 1, 4);
// newArray = {2, 3, 4}
728x90
'코테연습 > 프로그래머스' 카테고리의 다른 글
코딩 기초 트레이닝 > 배열 만들기 6 (0) | 2023.11.09 |
---|---|
코딩 기초 트레이닝 > 조건에 맞게 수열 반환하기 2 Java / 배열비교 Arrays.equals() (0) | 2023.11.01 |
⭐ 코딩테스트 입문 > 외계행성의 나이 #insert() (0) | 2023.09.25 |
코딩 기초 트레이닝 > 배열 조각하기 Java #copyOfRange (0) | 2023.09.21 |
⭐ 코딩 기초 트레이닝 > 글자 지우기 - Java # deleteCharAt() (0) | 2023.09.15 |