Lecture3_1
public class Lecture3_1 {
public static int[] sumArray(int n, int m, int[] nArray, int[] mArray) {
// 합쳐질 int배열 만들기 (결과물)
int[] result = new int[n+m];
// result의 index
int resultIndex = 0;
// nArray의 index
int nIndex = 0;
// mArray의 index
int mIndex = 0;
// 두 배열 중 한 쪽의 index가 length와 맞어 떨어질때까지 크기를 비교하며 출력한다
while ((nIndex != n) && (mIndex != m)) {
// nArray의 값이 mArray의 값 보다 크면 mArray의 값을 result에 담고 mArray와 result의 index 값을 ++
if (nArray[nIndex] > mArray[mIndex]) {
result[resultIndex] = mArray[mIndex];
resultIndex++;
mIndex++;
// nArray의 값과 mArray의 값이 같으면 둘다 result에 담고 모든 index 값을 ++
} else if (nArray[nIndex] == mArray[mIndex]) {
result[resultIndex] = nArray[nIndex];
resultIndex++;
result[resultIndex] = mArray[mIndex];
resultIndex++;
nIndex++;
mIndex++;
// mArray의 값이 nArray의 값 보다 크면 nArray의 값을 result에 담고 nArray와 result의 index 값을 ++
} else if (nArray[nIndex] < mArray[mIndex]) {
result[resultIndex] = nArray[nIndex];
resultIndex++;
nIndex++;
}
}
// 두 배열 중 먼저 끝난 쪽이 nArray라면 mArray의 나머지 뒷부분을 result에 담는다
if (nIndex == n) {
while (resultIndex != n+m) {
result[resultIndex] = mArray[mIndex];
mIndex++;
resultIndex++;
}
}
// 두 배열 중 먼저 끝난 쪽이 mArray라면 nArray의 나머지 뒷부분을 result에 담는다
if (mIndex == m) {
while (resultIndex != n+m) {
result[resultIndex] = nArray[nIndex];
nIndex++;
resultIndex++;
}
}
return result;
}
public static void main(String[] args) {
// 값 받기
Scanner sc = new Scanner(System.in);
// n배열
int n = sc.nextInt();
int[] nArray = new int[n];
for (int i = 0 ; i < n ; i++) {
nArray[i] = sc.nextInt();
}
// m배열
int m = sc.nextInt();
int[] mArray = new int[m];
for (int i = 0 ; i < m ; i++) {
mArray[i] = sc.nextInt();
}
// 출력
int[] result = sumArray(n, m, nArray, mArray);
for (int i : result) {
System.out.print(i + " ");
}
}
}
Author And Source
이 문제에 관하여(Lecture3_1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ikerbm94/Lecture31저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)