Загружаем каталог…
Загружаем каталог…
22. 나누어 떨어지는 숫자 배열 프로그래머스 문제 링크 import java.util.*; class Solution { public int[] solution(int[] arr, int divisor) { ArrayList<Integer> list = new ArrayList<>(); for (int n : arr) { if (n % divisor == 0) list.add(n); } if (list.isEmpty()) return new int[]{-1}; int[] answer = list.stream() .mapToInt(Integer::intValue) .toArray(); Arrays.sort(answer); return answer; } } 사용 문법 / 개념 ArrayList<Integer> 배열과 달리 크기를 동적으로 변경할 수 있는 자료구조. ArrayList<Integer> list = new ArrayList<>(); list.add(10); list.add(20); add() : 요소 추가 size() : 요소 개수 반환 isEmpty() : 비어 있는지 확인 향상된 for문 배열이나 컬렉션의 요소를 순서대로 순회한다. for (int n : arr) { System.out.println(n); } 일반 for문과 비교: for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } ArrayList<Integer> → int[] int[] answer = list.stream() .mapToInt(Integer::intValue) .toArray(); stream() : 컬렉션을 스트림으로 변환 mapToInt() : 요소를 기본형 int 로 변환 toArray() : 스트림을 배열로 변환 Arrays.sort() Arrays.sort(answer); 배열을 오름차순으로 정렬한다. 배열 초기화와 반환 return new int[]{-1}; 값이 -1 인 배열을 생성하여 바로 반환한다. 23. 콜라츠 추측 프로그래머스 문제 링크 class Solution { public int solution(int num) { int answer = 0; long n = num; while (n != 1 && answer < 500) { if (n % 2 == 0) n /= 2; else n = n * 3 + 1; answer++; } return n == 1 ? answer : -1; } } 사용 문법 / 개념 while 반복문 조건이 참인 동안 반복한다. while (n != 1 && answer < 500) { // 반복할 코드 } && 논리 AND 연산자 두 조건이 모두 참일 때 true 를 반환한다. a > 0 && b > 0 long 자료형 int 보다 큰 범위의 정수를 저장한다. long n = num; 콜라츠 추측은 연산 도중 초기 숫자보다 훨씬 커질 수 있으므로 long 을 사용하여 오버플로우를 방지한다. 삼항 연산자 ? : 조건에 따라 두 값 중 하나를 반환한다. return n == 1 ? answer : -1; 다음 코드와 동일하다. if (n == 1) return answer; else return -1; 기본 구조: 조건 ? 참일_때_값 : 거짓일_때_값; 24. 서울에서 김서방 찾기 프로그래머스 문제 링크 class Solution { public String solution(String[] seoul) { String answer = ""; int index = 0; for (String s : seoul) { if (s.equals("Kim")) answer = "김서방은 " + index + "에 있다"; index++; } return answer; } } 사용 문법 / 개념 String.equals() 문자열의 실제 내용이 같은지 비교한다. s.equals("Kim") == 와 equals() 의 차이: String a = new String("Kim"); String b = new String("Kim"); a == b // false a.equals(b) // true == : 객체의 참조가 같은지 비교 equals() : 문자열의 내용이 같은지 비교 문자열 비교에서는 일반적으로 equals() 를 사용한다. 문자열 연결 + 문자열과 숫자를 연결할 수 있다. int index = 2; String answer = "김서방은 " + index + "에 있다"; 결과: 김서방은 2에 있다 향상된 for문과 인덱스 int index = 0; for (String s : seoul) { index++; } 향상된 for문은 인덱스를 직접 제공하지 않으므로 별도 변수를 사용해야 한다. 인덱스가 필요한 경우 일반 for문이 더 간단할 수 있다. for (int i = 0; i < seoul.length; i++) { if (seoul[i].equals("Kim")) return "김서방은 " + i + "에 있다"; } 📌 이번에 새로 익힌 Java 핵심 문법 분류 문법 / 메서드 의미 동적 배열 ArrayList<Integer> 크기 변경 가능한 리스트 요소 추가 list.add(n) 리스트에 요소 추가 크기 확인 list.size() 리스트 요소 개수 빈 리스트 확인 list.isEmpty() 요소가 없는지 확인 향상된 for문 for (int n : arr) 배열 요소 순회 스트림 변환 list.stream() 컬렉션을 스트림으로 변환 기본형 변환 mapToInt() 요소를 int 로 변환 배열 변환 toArray() 스트림을 배열로 변환 배열 정렬 Arrays.sort(arr) 오름차순 정렬 배열 초기화 new int[]{-1} 값을 지정하여 배열 생성 논리 AND && 두 조건이 모두 참인지 확인 삼항 연산자 조건 ? A : B 조건에 따른 값 선택 문자열 비교 s.equals("Kim") 문자열 내용 비교 문자열 연결 "문자" + 변수 문자열과 값 연결 📌 헷갈리기 쉬운 것 ArrayList 와 배열 int[] arr = new int[5]; // 고정 크기 ArrayList<Integer> list = new ArrayList<>(); // 동적 크기 배열 길이와 리스트 크기 arr.length list.size() 문자열 비교 a == b // 참조 비교 a.equals(b) // 내용 비교 논리 연산자 && // AND || // OR ! // NOT 삼항 연산자 int result = a > b ? a : b; 리스트를 int 배열로 변환 int[] arr = list.stream() .mapToInt(Integer::intValue) .toArray(); 배열 정렬 Arrays.sort(arr); 값이 지정된 배열 반환 return new int[]{-1};
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
자바 알고리즘 연습 - 기초(2). 22. 나누어 떨어지는 숫자 배열 프로그래머스 문제 링크 import java.util.*; class Solution { public int[] solution(int[] arr, int divisor) { ArrayList list = new ArrayList (); for (int n : arr) { if (n % divisor == 0) list.add(n); } if (list.isEmpty()) return new int[]{-1}; int[] answer = list.stream() .mapToInt(Integer::intValue) .toArray(); Arrays.sort(answer); return answer; } } 사용 문법 / 개념…
Открыть источник