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("문자를 입력하세요: ");
a = sc.nextLine();
System.out.print("문자를 입력하세요: ");
b = sc.nextLine();
System.out.println(b+" "+a);
}
}
소스 풀이
- 문자열을 입력하기 위한 String 타입의 변수 a, b를 설정한다.
- Scanner를 사용하여 문자를 각각 키보드로 입력받아 변수 a, b에 저장한다.
- 변수 a, b의 순서를 뒤바꿔 World를 먼저 입력 받았어도 Hello가 먼저 올 수 있도록 한다.
- 중간의 공백을 채워주기 위해 " "를 사용해 공백을 나타냈다.
출력 결과
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);
}
}
소스 풀이
- 정수인 날짜를 입력받기 위해 정수 타입의 변수들을 선언한다.
- 날짜를 입력받기 위해 Scanner를 사용한다.
- printf를 사용한다. %d를 사용하여 정수형 변수를 받는다. 월과 일 변수가 오는 자리에는 %뒤에 0을 붙여 6월을 나타낼 때 06이 나올 수 있도록 한다.
출력 결과
Ex) 2022년 6월 7일을 입력했을 경우
년도를 입력하세요: 2022
월을 입력하세요: 6
일을 입력하세요: 7
2022.06.07
문제 3.
초를 입력하면 시간 분 초가 나오는 프로그램을 짜시오.
Ex)
정수(초)를 입력하세요 : 5000
1시간 23분 20초 입니다.
소스
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();
ho = sum/3600;
mi = (sum%3600)/60;
se = sum-((ho*3600)+(mi*60));
System.out.println(sum+"초는 "+ho+"시간 "+mi+"분 "+se+"초 입니다.");
}
}
소스 풀이
- 정수를 입력받았을 때의 공간을 마련하기 위한 int타입 변수를 설정한다.
이 때 변수는 각각 시간, 분, 초를 나타낸다.
- 정수를 입력받기 위해 Scanner를 사용한다.
- 시간을 계산하기 위해 총 초 변수인 sum을 1시간 분량의 초인 3600(초)로 나눈다. 그리고 그 몫을 시간 변수 ho에 저장한다.
- 시간계산에 쓴 초를 제외한 나머지를 1분을 나타내는 60(초)로 나눈다. 그리고 그 몫을 분 변수 mi에 저장한다.
- 남은 초 계산은 전체 초에서 시간변수를 초로 다시 바꾼 것과 분 변수를 초로 다시 바꾼 것을 더한 것을 뺀다. 그리고 그 몫을 변수 se에 저장한다.
- 각각의 변수를 알맞게 배치하여 출력한다.
출력 결과
Ex) 5000초를 입력했을 경우
정수(초)를 입력하세요 : 5000
5000초는 1시간 23분 20초 입니다.
문제 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의 자리가 같지 않습니다.");
}
}
}
소스 풀이
- 2자리수 정수를 입력하여 저장할 공간을 만들기 위해 정수형 타입 변수 num을 선언하고 Scanner를 사용한다.
- num을 10으로 나눈 몫은 10의 자리이고 num을 10으로 나눈 뒤 나머지는 1의 자리임을 이용한다.
- 10의 자리가 1의 자리와 같다면 Yes! 10의 자리와 1의 자리가 같습니다. 를 출력한다.
- 10의 자리가 1의 자리와 같지 않다면 No! 10의 자리와 1의 자리가 같지 않습니다. 를 출력한다.
출력 결과
Ex)
11을 입력했을 경우
2자리수 정수 입력(10~99) >> 11
Yes! 10의 자리와 1의 자리가 같습니다.
12를 입력했을 경우
2자리수 정수 입력(10~99) >> 12
No! 10의 자리와 1의 자리가 같지 않습니다.