-- hr 스키마

-- 문제1) EMPLOYEES 테이블에서 급여가 3000이상인 사원의 사원번호, 이름, 담당업무, 급여를 출력하라.

SELECT employee_id, first_name, job_id, salary FROM employees 
WHERE salary >= 3000; 


-- 문제2) EMPLOYEES 테이블에서 담당 업무가 ST_MAN인 사원의 사원번호, 성명, 담당업무, 급여, 부서번호를 출력하라.

SELECT employee_id, first_name, job_id, salary, department_id FROM employees 
WHERE job_id = 'ST_MAN';


-- 문제3) EMPLOYEES 테이블에서 입사일자가 2006년 1월 1일 이후에 입사한 사원의 
-- 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하라.

SELECT employee_id, first_name, job_id, salary, hire_date, department_id FROM employees 
WHERE hire_date > '06/01/01';

SELECT employee_id, first_name, job_id, salary, hire_date, department_id FROM employees 
WHERE hire_date > TO_DATE('060101','YYMMDD');


-- 문제4) EMPLOYEES 테이블에서 급여가 3000에서 5000사이의 사원의 성명, 담당업무, 급여, 부서번호를 출력하라.

SELECT first_name, job_id, salary, department_id FROM employees 
WHERE salary >= 3000 AND salary <= 5000;

SELECT first_name, job_id, salary, department_id FROM employees 
WHERE salary BETWEEN 3000 AND 5000;


-- 문제5) EMPLOYEES 테이블에서 사원번호가 145,152,203인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자를 출력하라

SELECT employee_id, first_name, job_id, salary, hire_date FROM employees 
WHERE employee_id IN (145 , 152 , 203);


-- 문제6) EMPLOYEES 테이블에서 입사일자가 05년도에 입사한 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하라.

SELECT employee_id, first_name, job_id, salary, hire_date, department_id FROM employees 
WHERE hire_date LIKE ('05%');


-- 문제7) EMPLOYEES 테이블에서 보너스가 없는 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 보너스, 부서번호를 출력하라.

SELECT employee_id, first_name, job_id, salary, hire_date, commission_pct, department_id FROM employees 
WHERE NVL(commission_pct,0)  =  0 ;

SELECT employee_id, first_name, job_id, salary, hire_date, commission_pct, department_id FROM employees 
WHERE commission_pct IS NULL ;


-- 문제8) EMPLOYEES 테이블에서 급여가 1100이상이고 JOB이 ST_MAN인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하라

SELECT employee_id, first_name, job_id, salary, hire_date, department_id FROM employees 
WHERE salary >= 1100 AND job_id = 'ST_MAN';


-- 문제9) EMPLOYEES 테이블에서 급여가 10000이상이거나 JOB이 ST_MAN인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하라

SELECT employee_id, first_name, job_id, salary, hire_date, department_id FROM employees 
WHERE salary >= 10000 OR job_id = 'ST_MAN';


-- 문제10) EMPLOYEES 테이블에서 JOB이 ST_MAN, SA_MAN, SA_REP가 아닌 사원의 사원번호, 성명, 담당업무, 급여, 부서번호를 출력하라

SELECT employee_id, first_name, job_id, salary, department_id FROM employees 
WHERE job_id NOT IN ('ST_MAN', 'SA_MAN', 'SA_REP'); 


-- 문제11) 업무가 AD_PRES이고 급여가 12000이상이거나 업무가 SA_MAN인 사원의 사원번호, 이름, 업무, 급여를 출력하라.

SELECT employee_id, first_name, job_id, salary FROM employees 
WHERE job_id = 'AD_PRES' AND salary >= 12000 OR job_id = 'SA_MAN';


-- 문제12) 업무가 AD_PRES 또는 SA_MAN이고 급여가 12000이상인 사원의 사원번호, 이름, 업무, 급여를 출력하라.

SELECT employee_id, first_name, job_id, salary FROM employees 
WHERE job_id IN ('AD_PRES' , 'SA_MAN') AND salary >= 12000;
-- 문제1) EMPLOYEES Table의 모든 자료를 출력하여라.

SELECT * FROM employees;


-- 문제2) EMPLOYEES Table의 컬럼들을 모두 출력하라.

DESC employees;


-- 문제3) EMPLOYEES Table에서 사원 번호, 이름, 급여, 담당업무를 출력하여라.

SELECT employee_id, first_name, salary, job_id FROM employees; 


-- 문제4) 모든 종업원의 급여를 $300증가 시키기 위해서 덧셈 연산자를 사용하고 결과에 SALARY+300을 디스플레이 합니다.

SELECT first_name, salary, salary+300 AS "SALARY+300" FROM employees;


-- 문제5) EMP 테이블에서 사원번호, 이름, 급여, 보너스, 보너스 금액을 출력하여라. 
-- (참고로 보너스는 월급 + (월급*커미션))

SELECT employee_id, first_name || last_name AS Name, salary, commission_pct, salary + (salary*commission_pct) as bouns FROM employees;


-- commission_pct을 Java로 가져올시 NullPointException 발생 !!  null -> 0 으로 바꿔서 가져와야함
-- NVL 함수 : NVL(대상컬럼, 대상컬럼이 NULL인 경우에 출력할 값) ★★★★★

SELECT employee_id, first_name, salary, NVL(commission_pct,0), salary+NVL(salary*commission_pct,0) FROM employees;


-- 문제6) EMPLOYEES 테이블에서 LAST_NAME을 이름으로 SALARY을 급여로 출력하여라.

SELECT last_name 이름, salary 급여 FROM employees;


-- 문제7) EMPLOYEES 테이블에서 LAST_NAME을 Name으로 SALARY * 12를 Annual Salary(연봉)로 출력하여라

SELECT last_name "Name", salary*12 "Annual Salary(연봉)" FROM employees;


-- 문제8) EMPLOYEES 테이블에서 이름과 업무를 연결하여 출력하여라. 

SELECT first_name || ' ' || last_name || ' : ' || job_id AS "이름 : 업무" FROM employees;


-- 문제9) EMPLOYEES 테이블에서 이름과 업무를 “KING is a PRESIDENT” 형식으로 출력하여라. 

SELECT last_name || ' is a ' || job_id FROM employees;


-- 문제10) EMPLOYEES 테이블에서 이름과 연봉을 “KING: 1 Year salary = 60000” 형식으로 출력하여라. 

SELECT last_name||': 1 Year salary = '|| salary*12 FROM employees;


-- 문제11) EMPLOYEES 테이블에서 JOB을 모두 출력하라.

SELECT DISTINCT job_id FROM employees; 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
        
		int num[] = new int [9];
        
		int max = 0;
		int index = 0;
		for (int i = 0; i < num.length; i++) {
			num[i]= scn.nextInt();
			if(num[i] > max) {
				max = num[i];
				index = i+1;
			}
		}
		System.out.println(max);
		System.out.println(index);
	}
}

 

int num [] = new int [9];

자연수를 넣어줄 배열의 크기를 9로 잡아준다.

 

int max = 0;

int index = 0;

max값과 배열의 index값을 넣어줄 변수에 선언과 초기화를 해준다.

 

for (int i = 0; i < num.length; i++) 

for문(반복문)의 조건식을 i < num.length(배열의 길이) 즉, 0 <9 만큼 실행하여준다.

 

num [i]= scn.nextInt();

num [i]에 값을 넣어준다.

 

if(num [i] > max) {
max = num[i];
index = i+1;
}

만약 num[i]num [i] > max 보다 크다면 num [i]를 max값으로 넣어준다.

index = i+1;

i는 0부터 시작이기 때문에 +1을 해준다.

 

System.out.println(max);
System.out.println(index);

for문을 빠져나와 print문을 실행해보면 max값과 index같이 잘 나오는 걸 볼 수 있다.

 

 

 

 

 

 

 

출처 : https://www.acmicpc.net/problem/2562

'문제풀이 > baekjoon' 카테고리의 다른 글

[자바] 10950번 : A+B - 3  (2) 2021.05.18

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		int line = scn.nextInt();
		for (int i = 0; i < line; i++) {
			int a = scn.nextInt();
			int b = scn.nextInt();
			System.out.println(a+b);
		}
	}
}

매우 간단한 문제이다.

 

Scanner를 이용하여 원하는 테스트 케이스를 입력받고

for문을 이용하여 출력하는 방법을 사용하였다.

 

 

 

 

출처 : https://www.acmicpc.net/problem/10950

'문제풀이 > baekjoon' 카테고리의 다른 글

[자바] 2562번 : 최댓값  (0) 2021.05.19

피보나치 수열이란?

> 처음 두 항을 1과 1로 한 후, 그 다음 항부터는 바로 앞의 두 개의 항을 더해 만드는 수열

     1 1 2 3 5 8 13
     a b c 			--> a+b = c
       a b c			--> a+b = c
         a b c			--> a+b = c

 

import java.util.*;

public class Fibonaci {
	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		System.out.println("피보나치 수열 계산기!!");
		System.out.print("정수 입력 >> ");
		int num = scn.nextInt();
		// 배열의 숫자가 몇이 들어갈지 모르니 long형으로 잡아준다.
		long a, b, c;	
		long arrNum[] = new long[num];
		
		a = 1;
		b = 1;
		
		arrNum[0] = a;
		arrNum[1] = b;
		
		
		int w = 0;
		while(w < arrNum.length-2) {
			c = a + b;
			arrNum[2 + w] = c;
			
			a = b;
			b = c;
			
			w++;
		}
		// 삼항연산자로 출력문 만들기
		for (long l : arrNum) {
			System.out.print(l +" " );
		}
	}
}

Scanner를 이용한 피보나치 수열 계산기입니다.

피보나치 수열 계산기!!
정수 입력 >> 10
1 1 2 3 5 8 13 21 34 55 

실행화면 입니다.

'문제풀이 > Java' 카테고리의 다른 글

[자바] 문자열을 암호표로 암호화, 복호화  (0) 2021.05.13
[자바] 남은 동전 구하기  (0) 2021.05.12
[자바] (업그레이드) 계산기  (0) 2021.05.12
[자바] 계산기  (0) 2021.05.12
[자바] 가위바위보 게임  (0) 2021.05.11

문자열 암호화

조건 

 > 주어진 암호표를 사용하여 암호화시키기

public class Encryption02 {
	public static void main(String[] args) {
		// 문자열 암호화 시키기
		// a ~ z
		char[] abcCode = { '`', '~', '!', '@', '#', '$', '%', '^', '&', 
						   '*', '(', ')', '-', '_', '+', '=', '|', '[',
						   ']', '{', '}', ';', ':', ',', '.', '/' };
		// 0 ~ 9
		char[] numCode = { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p' };
		String src = "abc123";
		// 암호화 문자열을 담을 변수
		String result = "";
		
		for (int i = 0; i < src.length(); i++) {
			// 문자열 scr를 char형으로 한개씩 쪼개기
			char c = src.charAt(i);
			// c를 int형으로 강제형변환
			int index = (int)c;
			// 알파벳 암호화
			if(c >= 'a'&& 'z' >= c) {
				// c == 'a' == 97 때문에 -97을 대입한다.
				// ex) abcCode[index-97]; == abcCode[0];
				result += abcCode[index-97];
			// 숫자 암호화	
			}else if(c >= '0'&& '9' >= c) {
				// c == '0' == 97 때문에 -48을 대입한다.
				result += numCode[index-48];
			}
		}
		System.out.println("원본\t: "+src);
		System.out.println("암호화\t: "+result);
원본 	: abc123
암호화 	: `~!wer

실행화면입니다.

 

문자열 복호화

조건

 > 암호화된 문자열을 원래대로 되돌리기

// 위 코드와 이어서

		// 복호화
		// 복호화 문자열을 담을 변수
		String originalCode = ""; 
		
		for (int i = 0; i < result.length(); i++) {
			char c = result.charAt(i);
			// 알파벳 -> 숫자
			int index = 0;
			if(c >= 'a' && 'z' >= c) {
				for (int j = 0; j < numCode.length; j++) {
					  // c == 'w' == 1
					if ( c == numCode[j]) { 
						index = j;
						break;
					}
				}
				index += 48;
				originalCode += (char)index;
			// 특수기호 -> 알파벳 	
			}else {
				for (int j = 0; j < abcCode.length; j++) {
					if ( c == abcCode[j]) {
						index = j;
						break;
					}
				}
				index += 97;
				originalCode += (char)index;
			}
		}
		System.out.println("복호화\t: "+originalCode);
	}
}
원본 	: abc123
암호화 	: `~!wer
복호화	: abc123

전체 코드 실행화면입니다.

'문제풀이 > Java' 카테고리의 다른 글

[자바] 피보나치 수열  (0) 2021.05.14
[자바] 남은 동전 구하기  (0) 2021.05.12
[자바] (업그레이드) 계산기  (0) 2021.05.12
[자바] 계산기  (0) 2021.05.12
[자바] 가위바위보 게임  (0) 2021.05.11

 

public class GetCoins {
	public static void main(String[] args) {
		// 큰 금액의 동전을 우선적으로 거슬러 줘야 한다.
		int[] coinUnit = { 500, 100, 50, 10 };
		int money = 2680;
		System.out.println("money\t: " + money + "원");
       		// coinUnit배열의 길이 만큼 for문 진행
		for (int i = 0; i < coinUnit.length; i++) { 
        		// int형 변수(result)를 만들어주고 동전 개수 계산 값을 넣어준다.
			int result = money/coinUnit[i];	
			System.out.println(coinUnit[i]+"원\t: "+result+"개");
            		// money의 값을 나머지로 초기화
			money = money % coinUnit[i];
		}
	}
}


남은 동전 구하기

조건

 > 거스름돈을 몇 개의 동전으로 지불할 수 있는지 계산 
 > 변수 money의 금액을 동전으로 바꾸었을 때 각각 몇 개의 동전이 필요한지 계산 
 > 출력 단, 가능한 적은 수의 동전을 거슬러 주어야 한다.

'문제풀이 > Java' 카테고리의 다른 글

[자바] 피보나치 수열  (0) 2021.05.14
[자바] 문자열을 암호표로 암호화, 복호화  (0) 2021.05.13
[자바] (업그레이드) 계산기  (0) 2021.05.12
[자바] 계산기  (0) 2021.05.12
[자바] 가위바위보 게임  (0) 2021.05.11

 

import java.util.Scanner;

public class Calculator {
	public static void main(String[] args) {
		int num1, num2;
		String oper;
		
		// 첫번째 수 입력
		num1 = number_input("첫번째");
		// 연산자를 입력
		oper = operatorInput();
		// 두번째 수 입력 / + 0 무시
		num2 = number_input("두번째");
		// 연산
		int result = processing(num1, num2, oper);
		// 결과 출력
		resultPrint(num1, num2, result, oper);
	}
	// 입력 함수들
	static int number_input(String no) {
				Scanner scn = new Scanner(System.in);
		String str = "";
		while(true) {
			System.out.print(no + "수 > ");
			str = scn.nextLine();
			// 공백확인
			if(str.equals("")== true) {
				System.out.println("숫자만 입력가능(공백x)");
				continue;
			}
			boolean flag = isNumber(str);
			if(flag == true) {
				break;
			}
			System.out.println("숫자만 입력가능(문자x)");
		}
		return Integer.parseInt(str);
	}
	
	static String operatorInput() {
		// 연산자
		Scanner scn = new Scanner(System.in);
		String oper;
		while (true) {
			System.out.print("연산기호 입력 (+, -, *, /) >>");
			oper = scn.nextLine();
			if (oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
				break;
			} else { // 연산기호가 다른문자가 입력이 되었는지? -> 다시 입력
				continue;
			}
		}
		return oper;
	}
	// 유틸리티 함수 -> 다른곳에서도 사용가능!
	static boolean isNumber(String str) {
		boolean flag = true;
		for (int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if(c < '0' || c > '9') { // 문자열 확인
				flag = false;
				break;
			}
		}
		return flag;
	}
	// 연산처리 함수
	static int processing(int n1, int n2, String oper) {
		int result = 0;
		switch(oper) {
		case "+" :
			result = n1+n2;
			break;
		case "-" :
			result = n1-n2;
			break;
		case "*" :
			result = n1*n2;
			break;
		case "/" :
			if(n2 == 0) {
				System.out.println("'0'은 연산불가!");
			}else {
				result = n1/n2;
				break;
			}
		}
		return result;
	}
	// 결과 출력
	static void resultPrint(int n1, int n2, int result, String oper) {
		System.out.println(n1 +" "+oper+" "+n2+" = "+ result);
	}
}

메소드 사용해서 계산기 프로그램 만들기!

 

'문제풀이 > Java' 카테고리의 다른 글

[자바] 문자열을 암호표로 암호화, 복호화  (0) 2021.05.13
[자바] 남은 동전 구하기  (0) 2021.05.12
[자바] 계산기  (0) 2021.05.12
[자바] 가위바위보 게임  (0) 2021.05.11
[자바] 배열 순차 정렬  (0) 2021.05.11
import java.util.*;

public class Calculator {
	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		
		String str1, str2; // 문자열 첫번째 수, 두번째 수
		int num1, num2; // 정수형 첫번째 수, 두번째 수 
		String oper; // 연산자
		
		// 첫번째수
		while(true) {
			System.out.print("첫번째 수 > ");
			str1 = scn.nextLine();
			// 공백확인
			if(str1.equals("")== true) {
				System.out.println("숫자만 입력가능(공백x)");
				continue;
			}
			boolean flag = true;
			for (int i = 0; i < str1.length(); i++) {
				char c = str1.charAt(i);
				if(c < '0' || c > '9') { // 문자열 확인
					flag = false;
					break;
				}
			}
			if(flag == true) {
				break;
			}
			System.out.println("숫자만 입력가능(문자x)");
		}
		// 연산자
		while(true) {
			System.out.print("연산기호 입력 (+, -, *, /) >>");
			oper = scn.nextLine();
			if(oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
				break;				
			} else { 		// 연산기호가 다른문자가 입력이 되었는지? -> 다시 입력

				continue;
			}
		}	
		// 두번째 수
		while(true) {
			System.out.print("두번째 수 > ");
			str2 = scn.nextLine();
			// 공백확인
			if(str2.equals("") == true) {
				System.out.println("숫자만 입력가능(공백x)");
				continue;
			}
			if(oper.equals("/")) {
				if(str2.equals("0")) { // 연산자 '/' -> 0 다시입력
					System.out.println("0으로는 연산불가!");
					continue;
				}
			}
			boolean flag = true;
			for (int i = 0; i < str2.length(); i++) {
				char c = str2.charAt(i);
				if(c < '0' || c > '9') { // 문자열 확인
					flag = false;
					break;
				}
			}
			if(flag == true) {
				break;
			}
			System.out.println("숫자만 입력가능(문자x)");
		}
		num1 = Integer.parseInt(str1);
		num2 = Integer.parseInt(str2);
		// 결과출력
		switch(oper) {
		case "+" :
			System.out.println(num1+oper+num2+"="+(num1+num2));
        		break;
		case "-" :
			System.out.println(num1+oper+num2+"="+(num1-num2));
            		break;
		case "*" :
			System.out.println(num1+oper+num2+"="+(num1*num2));
            		break;
		case "/" :
			System.out.println(num1+oper+num2+"="+(num1/num2));
            		break;
		}
	}
}

 

'문제풀이 > Java' 카테고리의 다른 글

[자바] 남은 동전 구하기  (0) 2021.05.12
[자바] (업그레이드) 계산기  (0) 2021.05.12
[자바] 가위바위보 게임  (0) 2021.05.11
[자바] 배열 순차 정렬  (0) 2021.05.11
[자바] 로또 번호 생성  (0) 2021.05.10
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;

public class Test {
    Random random = new Random();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int  com, draw, win, lose, round;
    String temp, user;
    void com(){
    	// 0 ~ 3
        com = random.nextInt(3)+1;
    }
    // com의 랜덤 숫자를 String변환
    void comString() {
        if(com == 1){
            temp = "가위";
            pln("Conputer: "+temp);
        }else if(com == 2 ){
            temp = "바위";
            pln("Conputer: "+temp);
        }else if(com == 3){
            temp = "보";
            pln("Conputer: "+temp);
        }
    }
    // user입력
    void user() {
        pln("입력해주세요: ");
        try {
            user = br.readLine();
            pln("user: "+ user);
        } catch (IOException e) {}
    }
    // 게임진행 round
    void round() { 
        while (true) {
            p("몇판을 진행할까요 ? ");
            try {
                round = Integer.parseInt(br.readLine());
                break;
            } catch (NumberFormatException ne) {
                pln("숫자만 입력해주세요.!");
                continue;
            } catch (IOException e) {
            } 
        }
    }
    void figth(){
        pln("round: "+round);
        for(int i=0; i<round; i++) {
            user();
            com();
            comString();
            if(temp.equals("가위")) {
                if(user.equals("가위")) {
                    pln("draw");
                    draw++;
                }else if(user.equals("바위")) {
                    pln("win");
                    win++;
                }else if(user.equals("보")) {
                    pln("lose");
                    lose++;
                }else {
                    pln("가위,바위,보만 내주세요");
                    i--;
                }
            }
            if(temp.equals("바위")) {
                if(user.equals("가위")) {
                    pln("lose");
                    lose++;
                }else if(user.equals("바위")) {
                    pln("draw");
                    draw++;
                }else if(user.equals("보")) {
                    pln("win");
                    win++;
                }else {
                    pln("가위,바위,보만 내주세요");
                    i--;
                }
            }
            if(temp.equals("보")) {
                if(user.equals("가위")) {
                    pln("win");
                    win++;
                }else if(user.equals("바위")) {
                    pln("lose");
                    lose++;
                }else if(user.equals("보")) {
                    pln("draw");
                    draw++;
                }else {
                    pln("가위,바위,보만 내주세요");
                    i--;
                }
            }
        }
        if((draw >= lose) || (draw >= win) || (lose == win)) {
            pln("결과는 ? draw: "+ draw);
        }else if((win >lose) || (win>draw)) {
            pln("결과는 ? win: "+ win);
        }else if((lose > win) || (lose > draw)){
            pln("결과는 ? lose: "+ lose);
        }
    }
    void pln(String str){
        System.out.println(str);
    }
    void p(String str) {
        System.out.print(str);
    }
    public static void main(String[] args) {
        Test t = new Test();
        t.pln("컴퓨터 vs 나 가위바위보 게임!!!!");

        t.round();
        t.pln("===========GAME START!!==========");
        t.figth();
    }
}

 

 

가위바위보 게임

 

 

필자는 자바 공부 중인 학생입니다.

많이 부족한 초보입니다.

피드백해주시면 감사히 받아들이겠습니다.

'문제풀이 > Java' 카테고리의 다른 글

[자바] (업그레이드) 계산기  (0) 2021.05.12
[자바] 계산기  (0) 2021.05.12
[자바] 배열 순차 정렬  (0) 2021.05.11
[자바] 로또 번호 생성  (0) 2021.05.10
[자바] Baseball Game  (0) 2021.05.10

+ Recent posts