728x90
반응형
Integer.valueOf(str);
- 문자열을 정수형으로 바꾸어 주는 함수.
- 숫자로 구성이 되어있지 않은 경우, exception이 반환되므로 , try/ catch 를 사용하길 권장함.
str = "abc"
char a = '';
char a = str.charAt(인덱스)
- 해당 인덱스의 char 값을 a 에 return 받을 수 있다.
//문자열의 길이
str = "문자열"
int length = 0;
length = str.length();
//배열의 길이
int array[1,3,4,5,6];
int length = 0;
length = array.length;
프로그래머스 열심히 풀고, 다른 사람의 풀이보고 현타 와서 기록!
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
내코드 :
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = {};
int len = arr.length;
int sum = 0;
for(int i=0; i<len;i++){
if(arr[i] % divisor == 0){
sum ++;
}
}
if(sum != 0){
answer = new int[sum];
int n =0;
while(n<sum){
for(int j=0; j<len; j++){
if(arr[j] % divisor == 0){
answer[n] = arr[j];
n ++;
}
}
}
}
else if(sum == 0){
answer = new int[1];
answer[0] = -1;
}
Arrays.sort(answer);
return answer;
}
}
한눈에 보기도 어렵고, 굉장히 for 문이 많다.
다른 사람의 코드 :
import java.util.Arrays;
class Divisible {
public int[] divisible(int[] array, int divisor) {
return Arrays.stream(array).filter(factor -> factor % divisor == 0).toArray();
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
Divisible div = new Divisible();
int[] array = {5, 9, 7, 10};
System.out.println( Arrays.toString( div.divisible(array, 5) ));
}
}
for 문과 if 문을 같이 돌렸던 내 코드와 달리, Arrays api의 filter를 활용하여 divisor로 나눈 나머지가 0이면 toArray() 를 활용해 리스트로 넣었다.
반응형
LIST
'개인 프로젝트 > JAVA 학습' 카테고리의 다른 글
프로그래머스 Java 오답노트 (0) | 2023.08.16 |
---|---|
Java 객체지향 개념 (2) | 2023.08.16 |
Java 기본문법 2 (0) | 2023.08.08 |
JAVA 프로그래밍 (0) | 2023.08.03 |