[Java] 1-1 첫 번째 수행평가

Haeun Noh·2022년 6월 7일
0

JAVA_수행평가 문제

목록 보기
1/2

0607


문제 1.

문자열1을 입력하고 문자열2를 입력했을 때 출력 결과가 문자열2 문자열1이 되도록 출력하시오.

Ex)
문자를 입력하세요: 문자열1
문자를 입력하세요: 문자열2
문자열2 문자열1

소스

import java.util.Scanner;
public class Str_1109 {
	public static void main(String args []) {
		Scanner sc = new Scanner(System.in);

		String a, b;
		System.out.print("문자를 입력하세요: ");	// 문자 입력1
		a = sc.nextLine();
		System.out.print("문자를 입력하세요: ");	// 문자 입력2
		b = sc.nextLine();

		System.out.println(b+" "+a);
        // 문자 입력2에서 입력한 변수b를 변수a보다 앞에 작성하여 맨 앞에 출력되도록 한다.
	}
}

소스 풀이

  1. 문자열을 입력하기 위한 String 타입의 변수 a, b를 설정한다.
  2. Scanner를 사용하여 문자를 각각 키보드로 입력받아 변수 a, b에 저장한다.
  3. 변수 a, b의 순서를 뒤바꿔 World를 먼저 입력 받았어도 Hello가 먼저 올 수 있도록 한다.
  4. 중간의 공백을 채워주기 위해 " "를 사용해 공백을 나타냈다.

출력 결과

Ex) World를 입력하고 Hello를 입력했을 경우

문자를 입력하세요: World
문자를 입력하세요: Hello
Hello World


문제 2.

년도와 월, 일을 입력하면 년도.월.일 로 출력되게 만드시오. 단 반드시 한 자릿수의 숫자를 입력하더라도 앞에 0이 붙어 자릿수를 채울 수 있도록 만드시오.

Ex)
년도를 입력하세요: xxxx
월을 입력하세요: 6
일을 입력하세요: 7
xxxx.06.07

소스

import java.util.Scanner;
public class Date_1109 {
	public static void main(String args []) {
		Scanner sc = new Scanner(System.in);

		int year, month, date;
	
		System.out.print("년도를 입력하세요: ");	// 년도 입력
		year = sc.nextInt();
		System.out.print("월을 입력하세요: ");	// 월 입력
		month = sc.nextInt();
		System.out.print("일을 입력하세요: ");	// 일 입력
		date = sc.nextInt();

		System.out.printf("%4d.%02d.%02d", year, month, date);
	}
}

소스 풀이

  1. 정수인 날짜를 입력받기 위해 정수 타입의 변수들을 선언한다.
  2. 날짜를 입력받기 위해 Scanner를 사용한다.
  3. printf를 사용한다. %d를 사용하여 정수형 변수를 받는다. 월과 일 변수가 오는 자리에는 %뒤에 0을 붙여 6월을 나타낼 때 06이 나올 수 있도록 한다.

출력 결과

Ex) 202267일을 입력했을 경우

년도를 입력하세요: 2022
월을 입력하세요: 6
일을 입력하세요: 7
2022.06.07


문제 3.

초를 입력하면 시간 분 초가 나오는 프로그램을 짜시오.

Ex)
정수()를 입력하세요 : 5000
1시간 2320초 입니다.

소스

import java.util.Scanner;
public class Time_1109 {
	public static void main(String args []) {
		Scanner sc = new Scanner(System.in);

		int sum, se, mi, ho;

		System.out.print("정수(초)를 입력하세요 : ");	// 정수 입력(초 입력)
		sum = sc.nextInt();
		
		// 60초=1분, 3600초=60분=1시간 을 이용한다.
        
		ho = sum/3600;	// 시간 = 전체/시간 분량의 초
		mi = (sum%3600)/60;	// 분 = (전체%시간 분량의 초)/분 분량의 초
        
		se = sum-((ho*3600)+(mi*60));
        // 5000을 입력했을 때 20초(=20초)를 나타냄
		// 남은 초 = 전체 초 - 시간(을 초로 바꾼 것)+분(을 초로 바꾼 것)
		
		System.out.println(sum+"초는 "+ho+"시간 "+mi+"분 "+se+"초 입니다.");
	}
}

소스 풀이

  1. 정수를 입력받았을 때의 공간을 마련하기 위한 int타입 변수를 설정한다.
    이 때 변수는 각각 시간, 분, 초를 나타낸다.
  2. 정수를 입력받기 위해 Scanner를 사용한다.
  3. 시간을 계산하기 위해 총 초 변수인 sum을 1시간 분량의 초인 3600(초)로 나눈다. 그리고 그 몫을 시간 변수 ho에 저장한다.
  4. 시간계산에 쓴 초를 제외한 나머지를 1분을 나타내는 60(초)로 나눈다. 그리고 그 몫을 분 변수 mi에 저장한다.
  5. 남은 초 계산은 전체 초에서 시간변수를 초로 다시 바꾼 것과 분 변수를 초로 다시 바꾼 것을 더한 것을 뺀다. 그리고 그 몫을 변수 se에 저장한다.
  6. 각각의 변수를 알맞게 배치하여 출력한다.

출력 결과

Ex) 5000초를 입력했을 경우

정수()를 입력하세요 : 5000
5000초는 1시간 2320초 입니다.


문제 4.

10의 자리와 1의 자리가 같은지 다른지를 나타내는 프로그램을 짜시오.

Ex)
2자리수 정수 입력(10~99) >> 11
Yes! 10의 자리와 1의 자리가 같습니다.

2자리수 정수 입력(10~99) >> 12
No! 10의 자리와 1의 자리가 같지 않습니다.

소스

import java.util.Scanner;
public class Equal_1109 {
	public static void main(String args []) {
		Scanner sc = new Scanner(System.in);

		System.out.print("2자리수 정수 입력(10~99) >> ");
		int num = sc.nextInt();

		if ( (num/10)==(num%10) ) {	
			System.out.println("Yes! 10의 자리와 1의 자리가 같습니다.");
		} else {	
			System.out.println("No! 10의 자리와 1의 자리가 같지 않습니다.");
		}
	}
}

소스 풀이

  1. 2자리수 정수를 입력하여 저장할 공간을 만들기 위해 정수형 타입 변수 num을 선언하고 Scanner를 사용한다.
  2. num을 10으로 나눈 몫은 10의 자리이고 num을 10으로 나눈 뒤 나머지는 1의 자리임을 이용한다.
  3. 10의 자리가 1의 자리와 같다면 Yes! 10의 자리와 1의 자리가 같습니다. 를 출력한다.
  4. 10의 자리가 1의 자리와 같지 않다면 No! 10의 자리와 1의 자리가 같지 않습니다. 를 출력한다.

출력 결과

Ex)
11을 입력했을 경우
2자리수 정수 입력(10~99) >> 11
Yes! 10의 자리와 1의 자리가 같습니다.

12를 입력했을 경우
2자리수 정수 입력(10~99) >> 12
No! 10의 자리와 1의 자리가 같지 않습니다.


profile
Tistory로 옮기게 되었습니다. @haeunnohh

0개의 댓글