1. 문제
https://www.acmicpc.net/problem/10804
2. 풀이
- 문제에 카드 20장이라고 정해주었으므로 20칸을 가진 int형 배열을 만든다.
- 2개씩 10개의 입력이 주어진다. (인덱스와 맞추기 위해서 -1)
- 변수를 하나 만들어 주고 입력값을 서로 빼준다. (start변수가 end변수보다 숫자가 작으면 마이너스 숫자가 나올 수 있어 Math.abs() 음수를 양수로 바꾸어 주는 메소드를 활용하고, 나온 숫자만큼 자리 바꿔주기 위하여 나누기 2를 해주는게 핵심이다.
3. 코드
package baekjoon;
import java.util.Scanner;
public class Q10804 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
for (int i = 0; i < 10; i++) {
int start = scanner.nextInt() - 1;
int end = scanner.nextInt() - 1;
int num = (Math.abs(start - end + 1) / 2);
int count = 0;
for (int j = 0; j < num; j++) {
int tmp = arr[start + count];
arr[start + count] = arr[end - count];
arr[end - count] = tmp;
count++;
}
}
for (int b : arr) {
System.out.print(b + " ");
}
}
}
'Algorithm' 카테고리의 다른 글
[Java] 백준 2495번 : 연속구간 (0) | 2022.02.19 |
---|---|
[Java] 백준 10798번 : 세로읽기 ver.2 (0) | 2022.02.16 |
[Java] 백준 10798번 : 세로읽기 (0) | 2022.02.15 |
[Java] 백준 1316번 : 그룹 단어 체커 (0) | 2022.02.14 |
[Java] 백준 1159번 : 농구 경기 (0) | 2022.02.13 |