728x90
-개발환경-
IDE : Eclipse IDE for Java Developers Version: 2020-03 (4.15.0) 공부 자료 : www.inflearn.com/course/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EB%B0%94/lecture/22652 |
-문제-
- 배열 num을 감안할 때 0이 아닌 요소의 상대적인 순서를 유지하면서 모든 0을 끝으로 이동시키는 함수를 작성하십시오.
ex)
Input : [0,3,2,0,8,5] Output : [3,2,8,5,0,0]
-접근법-
풀이법1
num의 앞부터 하나씩 접근하는 반복문에서
0이아닌것을 어레이리스트에 더해줌(빅오 N)
NUM.length - 어레이리스트.length = 0의갯수
어레이리스트에 0의갯수만큼 추가해줌
총빅오(N)
풀이법2
1. 배열 nums(자기자신)에 0이 아닌 값을 차례로 맨앞부터 넣어준다.(index 이용)
2. 기억된 index부터 0을 넣어준다.
풀이법2가 더 빠르고 ,공간복잡도도 작다.
-MoveZeros.java-
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
|
package codingTest;
public class MoveZeros {
public static void main(String[] args) {
// Testcase1
int[] nums= {0,3,2,0,8,5};
//Procedure
int index=0;
for(int i=0; i<nums.length;i++) {
if(nums[i]!=0) {
nums[index]=nums[i];
index++;
}
}
while(index<nums.length) {
nums[index]=0;
index++;
}
//Output
for(int i=0; i<nums.length;i++) {
System.out.println(nums[i]);
}
}
}
|
cs |
더보기
-Description
11~16 : 배열 nums(자기자신)에 0이 아닌 값을 차례로 맨앞부터 넣어준다.(index 이용)
17~20 : 기억된 index부터 0을 넣어준다.
-추가개념-
-마침글-
인용
'21년이전 > 자바-Algorithm' 카테고리의 다른 글
DailyTemperature (0) | 2021.03.24 |
---|---|
TwoSum (0) | 2021.03.22 |
MeetingRoom (0) | 2021.03.20 |