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
32
33
34
35
36
37
38
39
40
41
42
43
use mydb;
 
-- 문제 1 EMPLOYEES Table의 모든 자료를 출력하여라.
select *
from employees;
 
-- 문제 2 EMPLOYEES Table의 컬럼들을 모두 출력하라.
desc employees;
 
-- 문제 3 EMPLOYEES Table에서 사원 번호, 이름, 급여, 담당업무를 출력하여라.
select employee_id as "사원 번호", concat('이름: ', last_name, ' ', first_name) as "이름", salary as "급여", department_id as "담당업무"
from employees;
 
-- 문제 4 모든 종업원의 급여를 $300증가 시키기 위해서 덧셈 연산자를 사용하고 결과에 SALARY+300을 디스플레이 합니다.
select salary + 300 as "SALARY + 300"
from employees;
 
-- 문제 5 EMPLOYEES 테이블에서 사원번호, 이름, 급여, 보너스, 보너스 금액을 출력하여라. 
-- (참고로 보너스는 월급 + (월급*커미션))
 
select employee_id as "사원 번호", concat('이름: ', last_name, ' ', first_name) as "이름", salary as "급여",
comission_pct as "보너스", (salary * commission_pct) as "보너스 금액"
from employees;
 
-- 문제 6 EMPLOYEES 테이블에서 LAST_NAME을 이름으로 SALARY을 급여로 출력하여라.
select last_name as "이름", salary as "급여"
from employees;
 
-- 문제 7 EMPLOYEES 테이블에서 LAST_NAME을 Name으로 SALARY *12 를 Annual Salary(연봉)로 출력하여라
select last_name as "Name", salary * 12 as "Annual Salary(연봉)" 
from employees;
 
-- 문제 8 EMPLOYEES 테이블에서 이름과 업무를 연결하여 출력하여라.
select concat('이름: ', last_name, ' ', first_name, ', ''업무: ', job_id) as "이름과 업무"
from employees;
 
-- 문제 9 EMPLOYEES 테이블에서 이름과 업무를 "KING is a PRESIDENT" 형식으로 출력하여라. 
select concat(last_name, ' is a ', job_id) as "이름과 업무"
from employees;
 
-- 문제 10 EMPLOYEES 테이블에서 이름과 연봉을 "KING: 1 Year salary = 60000" 형식으로 출력하여라.
select concat(last_name, ': 1 Year salary = ', salary * 12) as "이름과 연봉"
from employees;
cs

Q. 편의점에서 물건을 사고 거스름돈을 받으려고 한다. 거스름돈을 5000원권, 1000원권, 500원, 100원, 50원, 10원을 조합하여 받는다고 할 때, 각각 몇 장(개)씩 받게 되는지 프로그램을 작성하라. 

1) 물건가격: 3210원, 지불금액: 10000원

2) 물건가격, 지불금액을 입력하고 그에 따른 결과를 출력 (Scanner 이용)

 

< 1)에 대한 Solution_1 >

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
32
33
34
package test;
 
public class MainClass {
 
    public static void main(String[] args) {
        
        int price,myMoney,change; //지불금액, 물건가격, 거스름돈 변수 선언
        price = 3210
        myMoney = 10000;
        System.out.println("물건가격 : " + price + "원");
        System.out.println("지불금액 : " + myMoney + "원");
        change = myMoney - price; // 6790 = 10000 - 3210
        System.out.println("거스름돈 = " + change + "원");
        
        int m5000 ,m1000, m500, m100, m50, m10; // 각 지폐 및 동전 변수 선언
        m5000 = change / 5000// 몫을 계산 6790 / 5000 의 몫은 1
        m1000 = (change % 5000/ 1000// 5000원권으로 거슬러준 후 나머지에 대해 몫을 계산
        m500 = ((change % 5000) % 1000/ 500// 1000원권으로 거슬러준 후 나머지에 대해 몫을 계산
        m100 = (((change % 5000) % 1000) % 500/ 100//이하 반복
        m50 = ((((change % 5000) % 1000) % 500) % 100/ 50;
        m10 = (((((change % 5000) % 1000) % 500) % 100) % 50/ 10;
        
        // 출력
        System.out.println("5000원: " + m5000 + "장");
        System.out.println("1000원: " + m1000 + "장");
        System.out.println("500원: " + m500 + "개");
        System.out.println("100원: " + m100 + "개");
        System.out.println("50원: " + m50 + "개");
        System.out.println("10원: " + m10 + "개");
        
    }
 
}
 
cs

< Console >

 - 출력값은 틀리지 않았으나, 소스 코드 작성 부분에서 몫과 나머지를 구하는 코드가 복잡하다는 단점이 있었다. 간소화하여 다시 한번 풀어보기로 하였다.

 

< 1)에 대한 Solution_2 >

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package test;
 
public class MainClass {
 
    public static void main(String[] args) {
        
        int price,myMoney,change; //지불금액, 물건가격, 거스름돈 변수 선언
        price = 3210
        myMoney = 10000;
        System.out.println("물건가격 : " + price + "원");
        System.out.println("지불금액 : " + myMoney + "원");
        change = myMoney - price; // 6790 = 10000 - 3210
        System.out.println("거스름돈 = " + change + "원");
        
        int m5000 ,m1000, m500, m100, m50, m10; // 각 지폐 및 동전 변수 선언
        
        //5000
        int m5000 = change / 5000// 6790/5000의 몫은 1
        
        //1000
        int m1000 = (change % 5000/ 1000;
        
        //500
        int m500 = (change % 1000/ 500;
        
        //100
        int m100 = (change % 500/ 100;
        
        //50
        int m50 = (change % 100/ 50;
        
        //10
        int m10 = (change % 50/ 10;    
                
        // 5000원 짜리는 모두 1000원짜리 지폐로 대체가 가능하고
        // 500원짜리 동전은 모두 100원짜리 동전으로 대체가 가능하므로 위와 같은 코드를 작성할 수 있다.
        
        // 출력
        System.out.println("5000원: " + m5000 + "장");
        System.out.println("1000원: " + m1000 + "장");
        System.out.println("500원: " + m500 + "개");
        System.out.println("100원: " + m100 + "개");
        System.out.println("50원: " + m50 + "개");
        System.out.println("10원: " + m10 + "개");
    
    }
 
}
 
cs

<  2)에 대한 Solution  >

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package test;
 
import java.util.Scanner;
 
public class MainClass {
 
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in); //Scanner class의 객체를 생성
        
        int price, myMoney, change;
        System.out.print("물건가격 : ");
        price = sc.nextInt();
        System.out.print("지불금액 : ");
        myMoney = sc.nextInt();
        
        // 거스름돈
        change = myMoney - price;
        System.out.println("거스름돈 = " + change + "원");
        
        //5000
        int m5000 = change / 5000// 6790/5000의 몫은 1
        
        //1000
        int m1000 = (change % 5000/ 1000;
        
        //500
        int m500 = (change % 1000/ 500;
        
        //100
        int m100 = (change % 500/ 100;
        
        //50
        int m50 = (change % 100/ 50;
        
        //10
        int m10 = (change % 50/ 10;    
                
        // 5000원 짜리는 모두 1000원짜리 지폐로 대체가 가능하고
        // 500원짜리 동전은 모두 100원짜리 동전으로 대체가 가능하므로 위와 같은 코드를 작성할 수 있다.
        
        // 출력
        System.out.println("5000원: " + m5000 + "장");
        System.out.println("1000원: " + m1000 + "장");
        System.out.println("500원: " + m500 + "개");
        System.out.println("100원: " + m100 + "개");
        System.out.println("50원: " + m50 + "개");
        System.out.println("10원: " + m10 + "개");
    
    }
 
}
 
cs

 

< Console >

임의로 물건가격과 지불금액을 입력한 결과

Q. 두 개의 정수 값을 입력 받고, x, y 변수에 저장한 후에 x, y 값을 바꾸고 출력되도록 프로그램을 작성하라.

 

< Solution >

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
32
33
34
35
package test;
 
import java.util.Scanner//Scanner class 사용하기 위해 추가
 
public class MainClass {
 
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in); //Scanner class의 객체를 생성
        
        int x, y; // x,y 변수 선언
        
        // 입력
        System.out.print("x = ");
        x = sc.nextInt();
        System.out.print("y = ");
        y = sc.nextInt();
        
        // Swap!! 값의 교환을 위해서 어떻게?
        // 변수의 임시 저장소 temp를 사용한다.
        
        int temp; // temp 변수 선언
        
        // 값의 교환
        temp = x; // x값이 temp로 
        x = y; // y값이 x로
        y = temp; // x값이 temp를 거쳐 y로  
        
        // 출력
        System.out.println("x = " + x + " y = " + y);
    
    }
 
}
 
cs

< Console >

입출력 결과 값이 교환된 모습

Q. Scanner, print를 이용하여 이름, 나이, 전화번호, 주소 등의 문자열을 입력받아서 출력하는 프로그램을 작성하라.

 

 

< Solution >

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package test;
 
import java.util.Scanner//Scanner class 사용하기 위해 추가
 
public class MainClass {
 
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in); //Scanner class의 객체를 생성
        
        // 변수 선언
        String name;
        int age;
        boolean man;
        String phone;
        double height;
        String address;
        
        // 입력
        System.out.print("name >>");
        name = sc.next();
        
        System.out.print("age >>");
        age = sc.nextInt();
        
        System.out.print("man >>");
        man = sc.nextBoolean();
        
        System.out.print("phone >>");
        phone = sc.next();
        
        System.out.print("height >>");
        height = sc.nextDouble();
        
        System.out.print("address >>");
        address = sc.next();
        
        // 출력
        System.out.println("name: " + name);
        System.out.println("age: " + age);
        System.out.println("man: " + man);
        System.out.println("phone: " + phone);
        System.out.println("height: " + height);
        System.out.println("address: " + address);
    }
 
}
 
cs

< Console >

임의로 입력 후 출력 결과

Q. 다음과 같이 출력되는 프로그램을 작성하라.

출력 결과

< Solution >

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package test;
 
public class MainClass {
 
    public static void main(String[] args) {
        
        // 변수 선언
        String name1,name2,name3;
        name1 = "\"홍길동\""//escape sequence로 큰따옴표 표현
        name2 = "\"일지매\"";
        name3 = "\"장옥정\"";
        
        int age1,age2,age3;
        age1 = 20;
        age2 = 18;
        age3 = 14;
        
        boolean man1,man2,man3;
        man1 = true;
        man2 = true;
        man3 = true;
        
        String phone1,phone2,phone3;
        phone1 = "010-111-2222";
        phone2 = "02-123-4567";
        phone3 = "02-345-7890";
        
        double h1,h2,h3; //height 변수 선언
        h1 = 175.12;
        h2 = 180.01;
        h3 = 155.78;
        
        String ad1,ad2,ad3; //address 변수 선언
        ad1 = "\"경기도\"";
        ad2 = "\"서울\"";
        ad3 = "\"부산\"";
        
        // 출력
        System.out.println("=========================================================");
        System.out.println("\\ name\t age\tman\tphone\t\theight\taddress \\");
        System.out.println("=========================================================");
        System.out.println("\\ "+name1+" "+age1+"\t"+man1+"\t"+phone1+"\t"+h1+"\t"+ad1+" \\");
        System.out.println("\\ "+name2+" "+age2+"\t"+man2+"\t"+phone2+"\t"+h2+"\t"+ad2+"   \\");
        System.out.println("\\ "+name3+" "+age3+"\t"+man3+"\t"+phone3+"\t"+h3+"\t"+ad3+"   \\");
        System.out.println("=========================================================");
        
        // 사이 간격은 space와 escape sequence "\t" 이용하여 조절
    }
 
}
 
cs

+ Recent posts