일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 전주독서실
- 자바스크립트
- 딥러닝
- 빅데이터
- Python
- 썸머스쿨예약
- 바이트디그리
- java
- 광주직업학교
- 메시지시스템
- 코린이
- 자바
- 서블릿
- 파이썬
- 내일배움카드
- 덴디컨설팅
- jsp
- 스프링
- 리스트
- 머신러닝
- K디지털크레딧
- 전주스터디카페
- 스마트인재개발원
- ui
- 자바페스티벌
- iOS개발강의
- ux
- 패스트캠퍼스
- 코딩
- 문제풀이
- Today
- Total
멀리 보는 연습
JAVA_festival 문제 풀이_2 본문
지난 편에 이어 계속되는 자바 페스티벌 문제 풀이~
문제 16.
아래와 같이 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 점(index)들을 출력하시오.
(단, 점들 사이의 거리는 모두 다르다.)
int[] point = {92,32,52,9,81,2,68};
int min =Math.abs(point[0]-point[1]);
int a = 0;
int b = 0;
for(int i = 0;i<point.length;i++) {
for(int j = 0; j<point.length;j++) {
if(i!=j) {
if(min>Math.abs(point[i]-point[j])) {
min=Math.abs(point[i]-point[j]);
a=i;
b=j;
}
}
}
}System.out.print("result = ["+a+","+b+"]");
문제 17.
아래와 같은 2차원 배열을 왼쪽으로 90도 회전하여 출력하시오.
int[][] arr = new int[5][5];
int k = 1;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = k;
k++;
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}System.out.println();
int[][] arr2 = new int[5][5];
int k2 = 1;
for (int i = 0; i < arr.length;i++) {
for (int j = 4; j >= 0; j--) {
arr[j][i] = k2;
k2++;
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
문제 18.
다음과 같은 프로그램을 작성하시오.
- N과 X를 입력 받는다.
- N개의 정수를 입력 받는다.
- N개의 숫자 중 X보다 작은 수만 출력한다.
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
System.out.print("N 입력 : ");
int N = sc.nextInt();
System.out.print("X 입력 : ");
int X = sc.nextInt();
for (int i = 0; i < 10; i++) {
System.out.print((i + 1) + "번째 정수 입력 : ");
arr[i] = sc.nextInt();
}
System.out.print("결과 >> ");
for (int i = 0; i < 10; i++) {
if (arr[i] < X) {
System.out.print(arr[i] + " ");
}
}
문제 19.
가운데 글자 구하기.
public static void main(String[] args) {
System.out.println(getMiddle("power"));
}
public static String getMiddle(String word) {
String[] arr = word.split("");
if(arr.length%2==0) {
return arr[(arr.length/2)-1]+arr[arr.length/2];
}
else {
return arr[arr.length/2];
}
}
문제 20.
아래와 같이 학생들의 성적 정보가 문자열로 선언되어 있을 때, 각 성적 별 학생 수를 출력하시오.
String score = "A,A,B,C,D,A,C,D,D,D,F";
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int f = 0;
String[] score2 = score.split(",");
for (int i = 0; i < score2.length; i++) {
if (score2[i].equals("A")) {
a++;
} else if (score2[i].equals("B")) {
b++;
} else if (score2[i].equals("C")) {
c++;
} else if (score2[i].equals("D")) {
d++;
} else {
f++;
}
}
System.out.println("A : " + a + "명");
System.out.println("B : " + b + "명");
System.out.println("C : " + c + "명");
System.out.println("D : " + d + "명");
System.out.println("F : " + f + "명");
문제 21.
숫자를 입력 받아 3의 배수인 숫자를 출력하는 프로그램을 작성하세요.
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
for(int i = 0; i<10;i++) {
System.out.print((i+1)+"번째 정수 입력 : ");
arr[i] = sc.nextInt();
}
System.out.println("3의 배수 : ");
for(int i = 0; i<10;i++) {
if(arr[i]%3==0) {
System.out.print(arr[i]);
}
}
문제 22.
사용자에게 입력 받아 배열의 인덱스 수만큼 별을 출력해보세요.
int[] arr = new int[5];
Scanner sc = new Scanner(System.in);
for(int i = 0;i<arr.length;i++) {
System.out.print(i+"번째 별의 수 : ");
arr[i] = sc.nextInt();
}
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" : ");
for(int j = 0;j<arr[i];j++) {
System.out.print("*");
}System.out.println();
}
문제 23.
단 수와 곱해지길 원하는 수를 입력하여 이와 같이 출력되게 하시오.
Scanner sc = new Scanner(System.in);
System.out.print("단수 입력 : ");
int num1 = sc.nextInt();
System.out.print("어느 수까지 출력 : ");
int num2 = sc.nextInt();
System.out.println(num1+"단");
for(int i = 0;i<num2;i++) {
System.out.println(num1+"*"+(i+1)+"="+(num1*(i+1)));
}
문제 24.
(세 자리 수) * (세 자리 수)는 다음과 같이 계산된다. (1),(2)번을 입력 받아 결과 화면처럼 (3),(4),(5),(6)번을 출력하는 프로그램을 작성하시오.
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 숫자 입력 : ");
int num1 = sc.nextInt();
System.out.print("두 번째 숫자 입력 : ");
int num2 = sc.nextInt();
System.out.println(num1*(num2%10));
System.out.println(num1*((num2/10)%10));
System.out.println(num1*(num2/100));
System.out.println(num1*num2);
문제 25.
그림과 같이 대시('-') 문자로 구성된 형태의 숫자를 주어진 숫자와 같이 출력하고 싶을 때 사용되게 되는 대시의 개수를 출력하는 프로그램을 작성하시오.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫자리 0을 제외한 숫자를 입력해주세요 >> ");
int num = sc.nextInt();
System.out.print("대시('-')의 총합 >> ");
System.out.println(Number(num));
}
public static int Number(int num) {
int result = 0;
int[] arr = {6,2,5,5,4,5,6,4,7,6};
while(num>0) {
int num2 = num%10;
num/=10;
result+=arr[num2];
}return result;
}
문제 26.
Scanner sc = new Scanner(System.in);
System.out.println("===채점하기===");
String ans = sc.next();
String[] arr = ans.split("");
int score = 0;
int sum = 0;
for(int i = 0; i <arr.length;i++) {
if(arr[i].equals("o")) {
score++;
}else {
score = 0;
}sum+=score;
}
System.out.println(sum);
문제 27.
정수 N을 입력 받아 N*N 배열에 다음과 같이 숫자를 저장하고 출력하시오.
Scanner sc = new Scanner(System.in);
System.out.print("정수 N 입력 : ");
int N = sc.nextInt();
int[][] arr = new int[N][N];
boolean a = true;
int k = 1;
for (int i = 0; i < arr.length; i++) {
if (a) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = k;
k++;
a = false;
}
} else {
for (int j = arr[i].length - 1; j >= 0; j--) {
arr[i][j] = k;
k++;
}
}
}for(int i = 0; i<arr.length;i++) {
for(int j = 0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+"\t");
}System.out.println();
}
문제 28. 모래시계
알파벳 순서대로 다음과 같이 모래시계 모양대로 출력하는 코드를 작성하여 출력하시오.
int[][] arr = new int[5][5];
char ch = 'A';
for(int i=0;i<arr.length;i++) {
if(i<=2) {
for(int j = i;j<=4-i;j++) {
arr[i][j] = ch++;
}
}else {
for(int j = 4-i;j<=i;j++) {
arr[i][j] = ch++;
}
}
}for(int i = 0;i<arr.length;i++) {
for(int j = 0; j<arr[i].length;j++) {
System.out.print((char)arr[i][j]+" ");
}System.out.println();
}
문제 29.
문자열 형태의 2진수를 입력 받아 10진수로 바꾸는 프로그램을 작성하시오.
Scanner sc = new Scanner(System.in);
System.out.print("2진수 입력 : ");
String num = sc.next();
int two = Integer.parseInt(num, 2);
System.out.println(two);
문제 30. 합병
두개의 배열 A와 B를 합병 후 오름차순으로 정렬하여 변환하는 mergeArray 메소드를 완성하시오.
public static void main(String[] args) {
int A[] = {1,3,5,7,9,11,13,15,17,19};
int B[] = {2,4,6,8,10,12,14,16,18,20};
int merge[] = mergeArray(A,B);
System.out.println("Merge : "+Arrays.toString(merge));
}
public static int[] mergeArray(int A[],int B[]) {
int[] C = new int[A.length+B.length];
System.arraycopy(A, 0, C, 0, A.length);
System.arraycopy(B, 0, C, A.length, B.length);
Arrays.sort(C);
return C;
}
문제 31.
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
int num = sc.nextInt();
System.out.print("출력 : ");
int sum = 1;
for(int i = 1 ; i<=num; i++) {
sum*=i;
}System.out.println(sum);
}
'Study > Java Festival' 카테고리의 다른 글
JAVA_festival 보너스 문제 풀이 (0) | 2021.06.27 |
---|---|
JAVA_festival 문제 풀이_1 (0) | 2021.06.27 |