실버V
https://www.acmicpc.net/problem/4383
4383번: 점프는 즐거워
Jolly jumper라 불리는 수열이 있다. 길이가 1인 수열은 무조건 Jolly jumper이고, 길이가 2이상일 때는 n개의 연속된 두 수의 차의 절댓값이 1부터 n-1까지 모두 나와야 Jolly jumper라고 한다. 예를 들어 1 4
www.acmicpc.net
문제
Jolly jumper라 불리는 수열이 있다. 길이가 1인 수열은 무조건 Jolly jumper이고, 길이가 2이상일 때는 n개의 연속된 두 수의 차의 절댓값이 1부터 n-1까지 모두 나와야 Jolly jumper라고 한다. 예를 들어
1 4 2 3
이것은 Jolly jumper인데, 두 수의 차의 절댓값이 각각 3,2,1이기 때문이다. 하여튼 조건을 충족하면 어느 수열이든 Jolly jumper라 할 수 있다. 이제 각 케이스마다 Jolly jumper인지를 판별하자.
입력
각 줄의 첫 수로 n이 주어진다.(n < 3000) 그 다음에는 n개의 수가 주어진다.
출력
각 줄마다 Jolly 인지 Not jolly 인지 출력한다.
접근방법
우선 이웃하는 값끼리 뺀 값을 저장하는 배열1과 1부터 n-1까지 저장하는 배열2를 만든다음
두 배열끼리 비교하여 배열1의 값이 배열2에 있으면 배열2에서 하나씩 제거하는 방식으로 jolly를 판별하였다.
코드
package bj4383;
import java.util.Scanner;
public class bj4383 {
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) { //EOF면 종료
//입력할 숫자 개수 입력
int n = sc.nextInt();
int[] arr = new int[n];
int[] array = new int[n];
int[] num = new int[n - 1];
int index = 0;
int check = 0;
//숫자 입력
for(int i = 0; i < n; i++) {
arr[i] = 0;//초기화
arr[i] = sc.nextInt();
}
//이웃하는 숫자끼리 뺀 값 저장
for(int i = n - 1; i >= 1; i--) {
array[index] = 0;//초기화
array[index] = Math.abs(arr[i] - arr[i - 1]); //이웃한 값끼리 뺀 값
index++;
}
//1부터 n - 1만큼 check에 저장
for(int i = 0; i < n - 1; i++) {
num[i] = 0; //초기화
num[i] = i + 1;
}
for(int i = 0; i < index; i++) {
check = 0; //초기화
for(int j = 0; j < n - 1; j++) {
if(array[i] == num[j]) { //check중 뺀 값이 있다면
check = 1;
num[j] = 0;
}
}
if(check == 0) //없으면 종료
break;
}
if(n == 1 || check == 1) //길이가 1이면 무조건 jolly
System.out.println("Jolly");
else
System.out.println("Not jolly");
}
}
}
NOTE
자바에서 입력이 없으면 종료하는 방법은 Scanenr와 BufferedReader 각각 다르다.
Scanner 에서는 sc.hasNext()를 사용하지만
BufferedReader에서는 입력받는 문자열 변수 = br.readLine()) != null를 사용한다.
출처 - https://steady-coding.tistory.com/227
'💻 Algorithm > Baekjoon' 카테고리의 다른 글
[JAVA] 백준 5635 - 생일 (0) | 2022.08.15 |
---|---|
[JAVA] 백준 4539 - 반올림 (0) | 2022.08.14 |
[JAVA] 백준 15829 - Hashing (0) | 2022.08.05 |
[JAVA] 백준 9012 - 괄호 (0) | 2022.08.02 |
[JAVA] 백준 10866 - 덱 (0) | 2022.08.02 |