728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181912
import java.util.*;
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
List<Integer> result = new ArrayList<>();
for(int i=0; i<intStrs.length; i++){
intStrs[i] = intStrs[i].substring(s,s+l);
int ret = Integer.parseInt(intStrs[i]);
if(ret > k){
result.add(ret);
}
}
int[] answer = new int[result.size()];
for(int i=0; i<result.size(); i++){
answer[i] = result.get(i);
}
return answer;
}
}
# 좀 더 직관적인 정답
import java.util.*;
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
List<Integer> resultList = new ArrayList<>();
for (int i = 0; i < intStrs.length; i++) {
String str = intStrs[i];
if (str.length() >= s + l) {
String subStr = str.substring(s, s + l);
int num = Integer.parseInt(subStr);
if (num > k) {
resultList.add(num);
}
}
}
int[] answer = new int[resultList.size()];
for (int i = 0; i < resultList.size(); i++) {
answer[i] = resultList.get(i);
}
return answer;
}
}
answer 배열에 가변적으로 크기를 지정해주어야 했기에 동적 배열 ArrayList 를 사용하여야 했다.
List 의 크기 : size() , 값 가져오기 : get()
substring() - 문자열 자르기 메서드
Integer.parseInt(String s) : 문자열 -> 정수값으로 변환 메서드
728x90
'코테연습 > 프로그래머스' 카테고리의 다른 글
코딩테스트입문 > 피자 나눠 먹기 (2) - java # 유클리드 호제법 (0) | 2023.08.23 |
---|---|
코딩테스트입문 > 짝수는 싫어요 java (0) | 2023.08.23 |
⭐ 코딩 기초 트레이닝 > 문자열 여러 번 뒤집기 java (0) | 2023.08.21 |
코딩 기초 트레이닝 > 글자 이어 붙여 문자열 만들기 java (0) | 2023.08.17 |
코딩 기초 트레이닝 > 9로 나눈 나머지 Java # 문자의 숫자값 얻기 - 아스키 코드 사용 (0) | 2023.07.31 |