Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • HTML
  • oracle
  • Eclipse
  • SQLD합격
  • 백준
  • sql기간
  • java
  • 기간쿼리
  • 이것이자바다
  • SQLD합격후기
  • spring
  • Database
  • AllArgsConstructor
  • 콜라보레이토리
  • CSS
  • colaboratory
  • 창초기화
  • 오류해결
  • 노마드코더
  • googlecolaboratory
  • 코딩앙마
  • 독학후기
  • 연습문제
  • SQL
  • 파이썬온라인
  • Javascript
  • 기간설정
  • 비쥬얼스튜디오코드
  • 서버등록
  • 시작일종료일

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

💻Programmers

[프로그래머스 / LV1] 나누어 떨어지는 숫자 배열(JAVA)

2023. 10. 9. 21:45
728x90
  • 문제 설명
    array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, 
    solution을 작성해주세요.
    divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

  • 제한사항
    arr은 자연수를 담은 배열입니다.
    정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
    divisor는 자연수입니다.
    array는 길이 1 이상인 배열입니다.

  • 입출력 예
    arr                      divisor             return
    [5, 9, 7, 10]             5                [5, 10]
    [2, 36, 1, 3]             1                [1, 2, 3, 36]
    [3,2,6]                   10                [-1]

  • 입출력 예 설명
    입출력 예#1
    arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.

    입출력 예#2
    arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.

    입출력 예#3
    3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.

  • 문제풀이
    1) ArrayList 사용하여 새로운 answerList 생성
    2) 기존 배열 arr의 요소 하나를  divisor로 나누었을 때 나머지가 0일 경우 answerList에 추가
    3) 만약 나누었을 때 나머지가 0이 되는 경우가 하나도 없어서 answerList 기르이가 0일 경우 -1만 담아준다.
    4) 정답 배열을 새로 생성한 다음, answerList에 담겨있는 요소들을 하나씩 넣어준다.
    5) Arrays.sort를 사용해 오름차순으로 정리해준다.
import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        ArrayList<Integer> answerList = new ArrayList<>();
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] % divisor == 0) {
                answerList.add(arr[i]);
            }
        }
        
        if(answerList.size() == 0) {
            answerList.add(-1);
        }
        
        int[] answer = new int[answerList.size()];
        for(int i = 0; i < answerList.size(); i++) {
            answer[i] = answerList.get(i);
           
        }
        Arrays.sort(answer);
        
        return answer;
    }
}

 

 

 

# 다른 사람 풀이

- 향상된 for문으로 좀 더 간단한 코드구성

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        Arrays.sort(arr);
        List<Integer> lst1 = new ArrayList<Integer>();

        for(int item : arr) {
            if(item % divisor == 0) {
                lst1.add(item);
            }
        }

        int lstSize = lst1.size();
        if(lstSize == 0) {
            int[] answer = { -1 };
            return answer;
        }

        int[] answer = new int[lstSize];
        for(int i = 0; i < lstSize; ++i) {
            answer[i] = lst1.get(i);
        }
        return answer;
    }
}

 

 

#다른 사람 풀이

- 람다식 공부하자..

import java.util.Arrays;

class Solution {
  public int[] solution(int[] arr, int divisor) {
          int[] answer = Arrays.stream(arr).filter(factor -> factor % divisor == 0).toArray();
          if(answer.length == 0) answer = new int[] {-1};
          java.util.Arrays.sort(answer);
          return answer;
  }
}
728x90
저작자표시 비영리 변경금지 (새창열림)

'💻Programmers' 카테고리의 다른 글

[프로그래머스 / LV1] 문자열 내 p와 y의 개수(JAVA)  (1) 2023.10.09
[프로그래머스 / LV1] 문자열을 정수로 바꾸기(JAVA)  (0) 2023.10.04
[프로그래머스 / LV1] 수박수박수박수박수박수?(JAVA)  (1) 2023.10.04
[프로그래머스 / LV1] 서울에서 김서방 찾기(JAVA)  (0) 2023.10.04
[프로그래머스 / LV1] 핸드폰 번호 가리기(JAVA)  (0) 2023.10.04
    '💻Programmers' 카테고리의 다른 글
    • [프로그래머스 / LV1] 문자열 내 p와 y의 개수(JAVA)
    • [프로그래머스 / LV1] 문자열을 정수로 바꾸기(JAVA)
    • [프로그래머스 / LV1] 수박수박수박수박수박수?(JAVA)
    • [프로그래머스 / LV1] 서울에서 김서방 찾기(JAVA)
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바