[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 20 함수(메서드)

2024. 8. 22. 12:18· 문제/프로그래머스

배열의 길이를 2의 거듭제곱으로 만들기

정수 배열 arr이 매개변수로 주어집니다. 
arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. 
arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.
class Solution {
    public int[] solution(int[] arr) {
        int arrSize = arr.length;
        for(int i = 1; i < arrSize; i++){
            int powN = (int) Math.pow(2,i);
            if(arrSize <= powN){
                arrSize = powN;
                break;
            }
        }

        int[] answer = Arrays.copyOf(arr, arrSize);
        return answer;
    }
}
import java.util.Arrays;

class Solution {
    public int[] solution(int[] arr) {
        int arrSize = 1;        
        while (arrSize < arr.length) {
            arrSize *= 2;
        }
        
        int[] answer = Arrays.copyOf(arr, arrSize);
        return answer;
    }
}

 

1. answer 배열의 크기를 구한다

-  arr배열크기 < answer배열의 크기 < 최소한의 2의 거듭제곱

2. answe배열의 크기만큼 arr배열을 복사한다

- arr 원소를 차례로 복사하고, 뒤에 남는 원소들은 0으로 초기화

 

거듭제곱 키워드를 보자마자 Math.pow() 메서드를 떠올려서 풀었는데 이후에 다른 사람풀이를 보니 굳이 pow() 사용하지 않고도 * 연산자만으로 크기를 구할 수 있었다.

 

JAVA Math클래스 

  • pow() 메서드
    • public static double pow(double a, double b)
    • a^b : 밑 값 a를 지수 값 b만큼 제곱 해서 반환
    • 지수 값(b)이 음수 일 때, 1/a^b 반환
    • 지수 값(b)이 0일 때, 밑(a)이 0이 아니라면 결과는 항상 1 반환
    • 지수 값(b), 밑(a) 모두 0 이면 NaN(Not a Number) 반환


JAVA Arrays클래스

  • copyOf() 메서드
    • public static int[] copyOf(int[] original, int newLength)
    • 복사할 원본 배열(original)을 새배열의 길이(newLength)만큼 복사
    • 깊은 복사로 배열의 값이 변경이 있어도 서로 영향을 주지 않음
    • 새배열의 길이가 원본 배열 길이보다 작으면 길이 이후는 잘려서 반환
    • 새별열의 길이가 원본 배열 길이보다 크면 원본 배열 내용을 포함하고 이후 요소들은 기본값(int의 경우 0)으로 채워짐
  • sort() 메서드
    • public static int[] sort(int[] arr)
    • 배열(arr)을 오름차순 정렬

'문제 > 프로그래머스' 카테고리의 다른 글

[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 17 문자열  (0) 2024.08.10
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 15 리스트(배열), 문자열  (0) 2024.08.07
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 14 리스트(배열)  (0) 2024.08.04
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 9 문자열  (0) 2024.07.25
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 8 조건문, 문자열  (4) 2024.07.25
'문제/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 17 문자열
  • [프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 15 리스트(배열), 문자열
  • [프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 14 리스트(배열)
  • [프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 9 문자열
개발원슝이
개발원슝이
꾸준히 개발공부를 합니다.
개발원슝이
꾸준히 개발슝이
개발원슝이
전체
오늘
어제
  • ALL (242) N
    • 프로젝트 (34)
      • clone coding (19)
      • mini project (5)
      • Team project(with KIC) (10)
    • 문제 (37)
      • 백준 (7)
      • 프로그래머스 (14)
      • 정보처리기사실기 (16)
    • 설치 (9)
    • 개발 기초 (13)
    • 프로그래밍언어 (124) N
      • HTML (16)
      • CSS (17)
      • JavaScript (22) N
      • JAVA (13)
      • JSP (10)
      • Python (22)
      • C언어 (24)
    • 프레임워크 (6)
      • Spring (3)
      • Django (3)
    • DB (2)
      • MySQL (2)
    • AWS (1)
    • 오류 (2)
    • 이것저것 (6)
    • 전공자 개발 (3)
    • 비전공자 개발 (5)

블로그 메뉴

  • 네이버블로그(강의노트)
  • GitHub
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이썬공부
  • 홍정모의 따라하며 배우는 C언어
  • 백준
  • 따배씨
  • 생활코딩
  • 점프 투 파이썬
  • 코딩테스트
  • 홍정모교수님
  • javascript
  • 인프런

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발원슝이
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 20 함수(메서드)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.