일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Notice
Recent Posts
Recent Comments
Link
Tags
- 왓챠피디아 클론 코딩
- 자바 팩토리얼
- 프로그래머스 문자열 정렬하기(1)
- 스프링 부트 프로젝트 세팅
- 자바 소인수분해
- 정보처리기사 필기 벼락치기
- 소인수분해 구하는 공식
- 경우의 수 자바
- 펙토리얼
- 프로그래머스
- 비전공자 정보처리기사 필기
- 배열 순환 자바
- 정처기 필기 벼락치기
- 티스토리챌린지
- spring boot 배너 설정
- cursor 우클릭 메뉴
- 자바 합성수 찾기
- 접속 url 출력
- 배열 순환
- 숨어있는 숫자의 덧셈 (1) 자바
- 피그마 썸네일
- 스프링 부트 배너 설정
- 오블완
- string과 stringbuilder 성능 최적화
- 프로그래머스 공 던지기 게임
- 배열 순환 문제 공식
- 정보처리기사 필기
- 스프링부트 의존성 설정
- cursor 설치
- 비전공자 정처기 필기
Archives
- Today
- Total
여름 언덕에서 배운 것
[0단계/6점]배열의 길이를 2의 거듭제곱으로 만들기 본문
처음에 테스트 코드는 통과하는데 22번만 틀림
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int newLength = 1;
while(true){
newLength*=2;
if(newLength>=arr.length){
break;
}
}
int[] answer = new int[newLength];
System.arraycopy(arr,0,answer,0,arr.length);
return answer;
}
}
생각해보니 2의 0승은 1이라서 arr={22} 만 주어진다면 위의 코드대로라면 => {2 , 0} 이 되버림
그래서 아래와 같이 수정
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int newLength = 1;
while(newLength<arr.length){
newLength*=2;
}
int[] answer = new int[newLength];
System.arraycopy(arr,0,answer,0,arr.length);
return answer;
}
}
System.arraycopy는 배열을 복사함
System.arraycopy(복사할 배열 , 복사를 시작할 인덱스, 새로 만들 배열, 새 배열에 붙여 넣을 인덱스, 복사할 요소의 개수 )
728x90
'가랑비에 옷 젖는 줄 모른다 💻 > 🌰코테문풀_꾸준히' 카테고리의 다른 글
[0단계/3점] 문자열 묶기 (0) | 2025.02.05 |
---|---|
[0단계 /1점] 배열 비교하기 (0) | 2025.02.05 |
[0단계/8점] 무작위로 K개의 수 뽑기 (0) | 2025.02.04 |
[0단계/2점]배열 만들기 6 (0) | 2025.02.04 |
[0단계/3점] 세 개의 구분자 (0) | 2025.02.03 |