2019 년 제10 회 블 루 브리지 컵 [Java]

2019 년 제10 회 블 루 브리지 컵 [Java]
특별 수의 합
[제목 설명] 샤 오 밍 은 숫자 에 2, 0, 1, 9 가 들 어 있 는 숫자 에 관심 이 많다 (선도 0 은 포함 되 지 않 음). 1 에서 40 까지 이런 수 는 1, 2, 9, 10 에서 32, 39 와 40 을 포함 하고 모두 28 개 로 그들의 합 은 574 이다.실례 지만, 1 부터 n 까지 모든 이 수의 합 은 얼마 입 니까?[입력] 한 줄 에 두 개의 정수 n 을 포함 합 니 다.[출력] 출력 한 줄 은 하나의 정 수 를 포함 하고 조건 을 만족 시 키 는 수 와 [샘플 입력] 40 [샘플 출력] 574 를 나타 낸다.
코드
import java.util.Scanner;

public class Main {
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int sum = 0;
		for(int i = 1; i <= n; i++) {
     
			String str = Integer.toString(i);
//			if(str.indexOf('2') != -1 || str.indexOf('0') != -1 || str.indexOf('1') != -1 || str.indexOf('9') != -1) {
     
			if(str.contains("2") || str.contains("0") || str.contains("1") || str.contains("9")) {
     	
				sum += i;
			}
		}
		System.out.println(sum);
		sc.close();
	}
}

등차 수열
[제목 설명] 수학 선생님 께 서 샤 오 밍 에 게 등차 수열 구 화 문 제 를 내 주 셨 다.그러나 부주의 한 샤 오 밍 은 일부 수열 을 잊 고 그 중 N 개의 정수 만 기억 했다.지금 이 N 개의 정 수 를 드 리 겠 습 니 다. 샤 오 밍 은 이 N 개의 정 수 를 포함 하 는 가장 짧 은 등차 수열 이 몇 가지 가 있 는 지 알 고 싶 습 니 다.[입력] 입력 한 첫 줄 은 정수 N 을 포함 합 니 다.두 번 째 줄 은 N 개의 정수 A1, A2, ·, AN 을 포함한다.(A1 ∼ AN 이 반드시 등차 수열 의 순서에 따라 제시 되 는 것 은 아니 므 로 주의 하 세 요) [출력] 하나의 정 수 를 출력 하여 답 을 표시 합 니 다 [샘플 입력] 5, 2, 6, 4, 10 20 [샘플 출력] 10
코드
import java.util.Arrays;
import java.util.Scanner;

public class Main {
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] x = new int[N];
		for (int i = 0; i < N; i++) {
     
			x[i] = sc.nextInt();
		}
		Arrays.sort(x);
		int d = Integer.MAX_VALUE;
		for (int i = 0; i < x.length - 1; i++) {
     
			if (d > x[i + 1] - x[i]) {
     
				d = x[i + 1] - x[i];
			}
		}
		if (d == 0) {
     
			System.out.println(N);
		} else {
     
			System.out.println((x[x.length - 1] - x[0]) / d + 1);
		}
		sc.close();
	}
}

접미사 식
[제목 설명] N 개의 플러스 번호, M 개의 마이너스 번호 와 N + M + 1 개의 정수 A1, A2, · · ·, AN + M + 1 을 지정 합 니 다. 샤 오 밍 은 이 N 개의 플러스 번호, M 개의 마이너스 번호 와 N + M + 1 개의 정수 로 구 성 된 합 법 적 인 접미사 표현 식 에서 결과 가 가장 큰 것 은 무엇 입 니까?이 가장 큰 결 과 를 출력 해 주세요.예 를 들 어 123 + - 를 사용 하면 '23 + 1 -' 이라는 접미사 표현 식 의 결 과 는 4 로 가장 크다.[입력] 첫 줄 에는 두 개의 정수 N 과 M 이 포함 되 어 있 습 니 다.두 번 째 줄 은 N + M + 1 개의 정수 A1, A2, ·, AN + M + 1 을 포함한다.[출력] 출력 개수, 정 답 [샘플 입력] 1 1 1 2 3 [샘플 출력] 4
코드
import java.util.Arrays;
import java.util.Scanner;

public class Main	{
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		int add = sc.nextInt();
		int reduce = sc.nextInt();
		int t = add + reduce + 1;
		int[] number = new int[t];
		for (int i = 0; i < t; i++) {
     
			number[i] = sc.nextInt();
		}
		long sum = 0;
		if (reduce == 0 && add == 0) {
     
			sum += number[0];
		}
		if (reduce == 0 && add != 0) {
     
			for (int i = 0; i < t; i++) {
     
				sum += number[i];
			}
		}
		if (add == 0 && reduce != 0) {
     
			Arrays.sort(number);
			if (number[0] < 0) {
     
				for (int i = 0; i <= reduce; i++) {
     
					if (number[i] > 0) {
     
						sum += number[i];
					} else {
     
						sum -= number[i];
					}
				}
			} else {
     
				for (int i = 1; i <= reduce; i++) {
     
					sum += number[i];
				}
				sum -= number[0];
			}
		}
		if (add != 0 && reduce != 0) {
     
			int reduceNum = 0;
			for (int i = 0; i < t; i++) {
     
				if (number[i] < 0) {
     
					reduceNum++;
				}
			}
			if (reduce >= reduceNum) {
     
				if (reduceNum != 0) {
     
					Arrays.sort(number);
					for (int i = 0; i < reduceNum; i++) {
     
						number[i] = -number[i];
					}
					// Arrays.sort(number);
					for (int i = t - 1; i >= 0; i--) {
     
						sum += number[i];
					}
				}else {
     
					Arrays.sort(number);
					for (int i = t - 1; i > 0; i--) {
     
						sum += number[i];
					}
					sum -= number[0];
				}
			} else {
     
				Arrays.sort(number);
				sum += number[t - 1];
				for (int i = 0; i < t - 1; i++) {
     
					if (number[i] > 0) {
     
						sum += number[i];
					} else {
     
						sum -= number[i];
					}
				}
			}
		}
		System.out.println(sum);
		sc.close();
	}
}

빙빙 돌다
[제목 설명] 그림 회전 은 그림 에 대한 가장 간단 한 처리 방식 중 하나 로 본 문제 에서 그림 을 시계 방향 으로 90 도 회전 시 켜 야 한다.우 리 는 n 을 하나 쓴다.× m 의 2 차원 배열 은 그림 을 표시 합 니 다. 예 를 들 어 아래 에 3 을 드 립 니 다.× 4 의 그림 예: 1, 3, 5, 7, 7, 6, 3, 5, 9, 7 이 그림 은 시계 방향 으로 90 도 회전 한 후의 그림 은 다음 과 같다.
[입력] 입력 한 첫 줄 은 두 개의 정수 n 과 m 를 포함 하고 각각 줄 수 와 열 수 를 나타 낸다.다음 n 줄, 줄 마다 m 개의 정 수 는 주어진 그림 을 표시 합 니 다.그림 의 모든 요소 (픽 셀) 는 0 에서 255 사이 의 정수 (0 과 255 포함) 입 니 다.
[출력] m 줄 n 열 을 출력 하여 회전 후의 그림 을 표시 합 니 다.
[샘플 입력] 3, 4, 1, 3, 5, 7, 9, 8, 7, 6, 3, 5, 9, 1, 5, 8, 3, 9, 7, 5, 7, 6, 7.
코드
import java.util.Scanner;

public class Main {
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[][] x = new int[m][n];
		for (int j = n - 1; j >= 0; j--) {
     
			for(int i = 0; i < m; i++) {
     
				x[i][j] = sc.nextInt();
			}
		}
		for(int i = 0; i < m; i++) {
     
			for(int j = 0; j < n; j++) {
     
				System.out.print(x[i][j] + " ");
			}
			System.out.println();
		}
		sc.close();
	}
}

Fibonacci 수열 과 황금 분할
[제목 설명] 피 보 나치 수열 은 매우 유명한 수열 이다. F [1] = 1, F [2] = 1, i > 3, F [i] = F [i - 1] + F [i - 2] 피 보 나치 수열 은 특수 한 성질 을 가지 고 있 는데 앞의 것 과 뒤의 비례, F [i] / F [i + 1] 은 금 분할 에 가깝다.이 성질 을 검증 하기 위해 정수 N 을 정 하고 F [N] / F [N + 1] 을 계산 하고 8 비트 의 소 수 를 유지 하 십시오.[입력] 정수 N 입 니 다.(1 ≤ N ≤ 200000000) 【 수출 】 F [N] / F [N + 1].답 은 8 자리 소 수 를 보류한다.[샘플 입력] 2 [샘플 출력] 0.5000000
코드
import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		if(n == 1) {
     
			System.out.println("1.00000000");
		}
		else if (n > 50) {
     
			System.out.println("0.61803399");
		} else {
     
			BigDecimal[] f = new BigDecimal[(int)n + 2];
			f[1] = BigDecimal.ONE;
			f[2] = BigDecimal.ONE;
			for (int i = 3; i <= n + 1; i++) {
     
				f[i] = f[i - 1].add(f[i - 2]);
			}
			System.out.println(f[(int)n].divide(f[(int)n + 1], 8, BigDecimal.ROUND_HALF_UP));
		}
		sc.close();
	}
}

좋은 웹페이지 즐겨찾기