강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

주영님의 프로필 이미지
주영

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

1. 두 배열 합치기(two pointers algorithm)

배열 합치기 질문입니다

작성

·

394

0

package infrun;

import java.util.ArrayList;

import java.util.Scanner;

//배열합치기 , 오름차순 정렬

public class IN_3_1 {

public ArrayList<Integer> soultion(int num, int num2, int[] arr,int []arr2) {

int p1=0, p2=0;

//for(int i=0; i<num; i++) {

ArrayList<Integer> answer= new ArrayList<Integer>();

while(p1<num && p2<num2) {

if(arr[p1]<arr[p2]) {

answer.add(arr[p1++]);

}else {

answer.add(arr2[p2++]);

}

}

while(p1<num) {

answer.add(arr[p1++]);

}

while(p2<num2) {

answer.add(arr2[p2++]);

}

return answer;

}

public static void main(String[] args) {

Scanner sc= new Scanner(System.in);

int num=sc.nextInt();

IN_3_1 i3= new IN_3_1();

int []arr= new int[num];

for(int i=0; i<num; i++) {

arr[i]=sc.nextInt();

}

int num2=sc.nextInt();

int []arr2= new int[num2];

for(int i=0; i<num2; i++) {

arr2[i]=sc.nextInt();

}

for(int x:i3.soultion(num, num2, arr, arr2)) {

System.out.print(x+ " ");

}

}

}

처음 배열 갯수 입력받는 부분에서

java.lang.ArrayIndexOutOfBoundsException:

익셉션이뜨는데

어느부분이 잘못됐는지 잘 몰라서 질문드립니다..

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

while(p1<num && p2<num2) {

if(arr[p1]<arr[p2]) {

answer.add(arr[p1++]);

}else {

answer.add(arr2[p2++]);

}

}

에 오타에러가 있습니다.

주영님의 프로필 이미지
주영

작성한 질문수

질문하기