학교 1학년 2학기 수행평가 코딩테스트 문제입니다.
복습 목적으로 다시 한 번 풀어봅니다.
❓문제 설명
배열 A(5)와 B(5)에 데이터를 입력받아 두 배열을 병합하여 오름차순으로 정렬한 후 중복없이 출력하는 프로그램을 작성하시오.
⚠️ 입출력 예시
✏️ 직접 구현한 코드
import java.util.Scanner;
import java.util.Arrays;
public class suhaeng1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A[] = new int[5];
int B[] = new int[5];
int res[] = new int[10];
System.out.print("첫번째 배열의 데이타 : ");
for(int i = 0; i < 5; i++) {
A[i] = sc.nextInt();
res[i] = A[i];
}
System.out.print("두번째 배열의 데이타 : ");
for(int i = 0; i < 5; i++) {
B[i] = sc.nextInt();
res[i+5] = B[i];
}
Arrays.sort(res);
System.out.print("병합된 배열의 데이타 : ");
for(int i = 0; i < res.length; i++) {
if(i > 0 && res[i-1]!=res[i]) {
System.out.print(res[i]+" ");
} else if(i == 0) {
System.out.print(res[i]+" ");
}
}
}
}
🗣️ 코드 설명
- 사용할 Scanner, Arrays 클래스를 import 해줍니다.
- 데이터를 입력받을 A, B배열을 각각 5의 크기로 생성해주고, 그 두 개의 배열을 병합할 res배열을 10의 크기로 생성해주었습니다.
- for문을 두 개를 이용해 A와 B배열에 값을 입력 받음과 동시에, res배열에 값을 병합합니다.
- Arrays클래스의 sort메서드를 이용하여 입력받은 값을 모두 병합한 res배열을 오름차순 정렬합니다.
- 또 for문을 이용해 res배열의 값을 출력합니다. for문 안에서 if문으로 중복제거 후 출력을 했습니다. 0번 보다 작은 인덱스는 없으니, 인덱스 1번 부터 앞 숫자 인덱스의 값과 같지 않으면 출력하고, 인덱스 0번은 그냥 출력되도록 했습니다.
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - 배열 원소의 길이 (0) | 2023.02.20 |
---|---|
[JAVA] 학교 수행평가 코딩테스트 - 부채꼴 면적과 둘레를 클래스 이용해 구하기 (0) | 2023.02.16 |
[JAVA] 프로그래머스 - 짝수 홀수 개수 (0) | 2023.02.16 |
[JAVA] 프로그래머스 - 피자 나눠 먹기 (1) (2) | 2023.02.15 |
[JAVA] 프로그래머스 - 배열의 유사도 (0) | 2023.02.15 |