no image
SQL 질의문(쿼리문) 문제정답 (개인공부)
질의 3-1 모든 도서의 이름과 가격을 검색하시오 select bookname, price form book; 질의 3-2 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오. select * from book; 질의 3-3 도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct) select distinct publisher from book; 질의 3-4 가격이 20,000원 미만인 도서를 검색하시오. select bookname, price from book where price = 10000 a..
2023.03.11
SQL
no image
SQL 질의문(쿼리문) 문제(개인공부)
질의 3-1 모든 도서의 이름과 가격을 검색하시오 질의 3-2 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오. 질의 3-3 도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct) 질의 3-4 가격이 20,000원 미만인 도서를 검색하시오. 질의 3-5 가격이 10,000원 이상 20,000 이하인 도서를 검색하시오. 질의 3-6 출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오. z 질의 3-7 ‘축구의 역사’를 출간한 출판사를 검색하시오. 질의 3-8 도서이름에 ‘축구’가 포함된 출판사를 검색하시오. 질의 3-9 도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오. 질의 3-10 축구에 관한 도서 중 가격이 20,000원 이상인 도서..
2023.03.11
SQL
no image
SQL 질의문(쿼리문) 테이블 데이터(개인공부)
테이블 데이터 DROP TABLE Book; DROP TABLE Customer; DROP TABLE Orders; DROP TABLE Imported_Book; CREATE TABLE Book ( bookid NUMBER(2) PRIMARY KEY, bookname VARCHAR2(40), publisher VARCHAR2(40), price NUMBER(8) ); CREATE TABLE Customer ( custid NUMBER(2) PRIMARY KEY, name VARCHAR2(40), address VARCHAR2(50), phone VARCHAR2(20) ); CREATE TABLE Orders ( orderid NUMBER(2) PRIMARY KEY, custid NUMBER(2) REFE..
2023.03.11
SQL
no image
python 네이버 자동 로그인 프로그램
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium import webdriver import pyperclip import time driver = webdriver.Chrome(r"C:\Users\이재은\Desktop\자동 로그인\chromedriver_win32/chromedriver.exe") driver.implicitly_wait(10) #10초대기 설정 driver.get("https://www.naver.com") driver.find_el..
2023.03.08
no image
python 구글 자동로그인 프로그램
import time from selenium import webdriver from selenium.webdriver.chrome.options import Options import chromedriver_autoinstaller import subprocess import shutil import pyautogui try: shutil.rmtree(r"C:\chrometemp") # remove Cookie, Cache fileHjdy08254s except FileNotFoundError: pass try: subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 ' r'-..
2023.03.08
no image
java input Worst Fit 스케줄링(입력 최악적합)
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출 //Scanner는 java.util 패키지에 포함되어있다. public class Worst_Fit2 { // Worst_Fit2 라는 객체를 생성 public static void main(String[] args) {// 접근 한정자를 public으로 설정(어디서든지 사용가능) // static으로 메모리를 미리 할당 // void는 함수가 끝날 때 리턴값이 없다. // main은 메인 함수로 쓰여지는것 // String[] args는 args를 문자열로 사용하겠다 라는 의미 Scanner in = new Scanner(System.in); // 객체를 생성 System.in은 키보드..
2023.01.13
no image
java input Best Fit 스케줄링(입력 최적적합)
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출 //Scanner는 java.util 패키지에 포함되어있다. public class Best_Fit2 { // Best_Fit2 라는 객체를 생성 public static void main(String[] args) {// 접근 한정자를 public으로 설정(어디서든지 사용가능) // static으로 메모리를 미리 할당 // void는 함수가 끝날 때 리턴값이 없다. // main은 메인 함수로 쓰여지는것 // String[] args는 args를 문자열로 사용하겠다 라는 의미 Scanner in = new Scanner(System.in); // 객체를 생성 System.in은 키보드로 ..
2023.01.13
no image
java input First Fit 스케줄링(입력 최초적합)
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출 //Scanner는 java.util 패키지에 포함되어있다. public class First_Fit2 { // First_Fit2 라는 객체를 생성 public static void main(String[] args) {// 접근 한정자를 public으로 설정(어디서든지 사용가능) // static으로 메모리를 미리 할당 // void는 함수가 끝날 때 리턴값이 없다. // main은 메인 함수로 쓰여지는것 // String[] args는 args를 문자열로 사용하겠다 라는 의미 Scanner in = new Scanner(System.in); // 객체를 생성 System.in은 키보드..
2023.01.13
반응형
질의 3-1   모든 도서의 이름과 가격을 검색하시오
select bookname, price
form book;


질의 3-2   모든 도서의 도서번호,  도서이름, 출판사, 가격을 검색하시오.
select *
from book;


질의 3-3   도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct)
select distinct publisher
from book;


질의 3-4   가격이 20,000원 미만인 도서를 검색하시오.
select bookname, price
from book
where price < 20000;


질의 3-5   가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.
select bookname, price
from book
where price >= 10000 and price <= 20000;


질의 3-6   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
select *
from book
where publisher IN ('굿스포츠', '대한미디어');

또는

select *
from book
where publisher not IN ('굿스포츠', '대한미디어');

질의 3-7   ‘축구의 역사’를 출간한 출판사를 검색하시오. (LIKE) - LIKE 연산자는 문자열의 패턴을 검색하는 데 사용
select publisher, bookname
from book
where bookname LIKE '축구의 역사';


질의 3-8   도서이름에 ‘축구’가 포함된 출판사를 검색하시오.
select publisher, bookname
from book
where bookname like '%축구%';


질의 3-9   도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오.
select bookname
from book
where bookname like '_구%';


질의 3-10   축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.
select bookname
from book
where bookname like '%축구%' and price >= 20000;


질의 3-11   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
select bookname, publisher
from book
where publisher in('굿스포츠', '대한미디어');


질의 3-12   도서를 이름순으로 검색하시오. (order by 기본적으로 오름차순, ASC)
select bookname
from book
order by bookname;


질의 3-13   도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.
select bookname, price
from book
order by price, bookname;


질의 3-14   도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색하시오  (내림차순 DESC, 오름차순 ASC) @


질의 3-15   고객이 주문한 도서의 총 판매액을 구하시오.
select sum(saleprice)
from orders;

또는 

select sum(saleprice) as 총매출
from orders;


질의 3-16   2번 김연아 고객이 주문한 도서의 총 판매액을 구하시오. (SUM)
select sum(saleprice) as 김연아고객매출
from orders
where custid = 2;


질의 3-17   고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오. (SUM, AVG, MIN, MAX)
select sum(saleprice) as 총매출, avg(saleprice) as 평균값, min(saleprice) as 최저가, max(saleprice) as 최고가
from orders;


질의 3-18   마당서점의 도서 판매 건수를 구하시오. (COUNT(*))
select count(*)
from orders;


질의 3-19   고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오. (GROUP BY)
select custid, count(*) as 도서수량, sum(saleprice) as 총가격
from orders
group by custid;


질의 3-20   가격이 8,000원 이상인 도서를 구매한 고객에 대하여 고객별 주문 도서의  (GROUP BY, HAVING)  @
                총 수량을 구하시오.  단, 두 권 이상 구매한 고객만 구한다.
- GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.


질의 3-21   고객과 고객의 주문에 관한 데이터를 모두 보이시오.
select *
from customer, orders
where customer.custid=orders.custid


질의 3-22   고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.
select *
from customer c, orders o
where c.custid=o.custid
order by c.custid;


질의 3-23   고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.
select *
from customer c, orders o
where c.custid=o.custid
order by c.custid;


질의 3-24   고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.
select name, sum(saleprice)
from customer c, orders o
where c.custid=o.custid
group by c.name
order by c.name;


질의 3-25   고객의 이름과 고객이 주문한 도서의 이름을 구하시오.
select c.name, b.bookname
from customer c, orders o, book b
where c.custid=o.custid and b.bookid=o.bookid;


질의 3-26   가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.
select name, bookname
from customer c, orders o, book b
where c.custid=o.custid and o.bookid=b.bookid
    and price = 20000;
    

질의 3-27  도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 
               판매가격을 구하시오. LEFT OUTER JOIN @@
select name, saleprice
from customer left outer join orders
    on customer.custid=orders.custid;
    

질의 3-28  가장 비싼 도서의 이름을 보이시오. (MAX) @
select bookname, price
from book
where price = (select max(price)
            from book);
            

질의 3-29   도서를 구매한 적이 있는 고객의 이름을 검색하시오. (IN) @
select name
from customer
where custid in (select custid
                from orders);


질의 3-30   대한미디어에서 출판한 도서를 구매한 고객의 이름을 보이시오. (IN) @
select name
from customer
where custid in (select custid
                    from orders
                    where bookid in (select bookid
                                from book
                                where publisher = '대한미디어'));


질의 3-31   출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오. (AVG)@
select bookname
from book b1
where b1.price > (select avg(b2.price)
                from book b2
                where b2.publisher=b1.publisher);
또는

select bookname
from book b1
where b1.price > (select avg(b2.price)
                from book b2);
또는

select bookname
from book
where price > (select avg(price)
                from book);


(합집합 UNION, 차집합 MINUS, 교집합 INTERSECT)


질의 3-32   도서를 주문하지 않은 고객의 이름을 보이시오. @
select name
from customer
minus
select name
from customer
where custid in(select custid 
        from orders);


질의 3-33  주문이 있는 고객의 이름과 주소를 보이시오. (EXIXTS)
select name, address
from customer
where exists (select *
                from orders
                where customer.custid = orders.custid);
또는

select name, address
from customer
where exists (select custid
                from orders
                where customer.custid = orders.custid);
반응형
반응형
질의 3-1   모든 도서의 이름과 가격을 검색하시오

질의 3-2   모든 도서의 도서번호,  도서이름, 출판사, 가격을 검색하시오.

질의 3-3   도서 테이블에 있는 모든 출판사를 검색하시오. (중복 제거 distinct)

질의 3-4   가격이 20,000원 미만인 도서를 검색하시오.

질의 3-5   가격이 10,000원 이상 20,000 이하인 도서를 검색하시오.

질의 3-6   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.
z
질의 3-7   ‘축구의 역사’를 출간한 출판사를 검색하시오.

질의 3-8   도서이름에 ‘축구’가 포함된 출판사를 검색하시오.

질의 3-9   도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하시오.

질의 3-10   축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하시오.

질의 3-11   출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하시오.

질의 3-12   도서를 이름순으로 검색하시오. (order by 사용)

질의 3-13   도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하시오.

질의 3-14   도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색하시오  (내림차순 DESC, 오름차순 ASC)

질의 3-15   고객이 주문한 도서의 총 판매액을 구하시오.

질의 3-16   2번 김연아 고객이 주문한 도서의 총 판매액을 구하시오. (SUM)

질의 3-17   고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오. (SUM, AVG, MIN, MAX)

질의 3-18   마당서점의 도서 판매 건수를 구하시오. (COUNT(*))

질의 3-19   고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오. (GROUP BY)

질의 3-20   가격이 8,000원 이상인 도서를 구매한 고객에 대하여 고객별 주문 도서의  (GROUP BY, HAVING)
                총 수량을 구하시오.  단, 두 권 이상 구매한 고객만 구한다.
- GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.

질의 3-21   고객과 고객의 주문에 관한 데이터를 모두 보이시오.

질의 3-22   고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하여 보이시오.

질의 3-23   고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오.

질의 3-24   고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오.

질의 3-25   고객의 이름과 고객이 주문한 도서의 이름을 구하시오.

질의 3-26   가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오.

질의 3-27  도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 
               판매가격을 구하시오.

질의 3-28  가장 비싼 도서의 이름을 보이시오. (MAX)

질의 3-29   도서를 구매한 적이 있는 고객의 이름을 검색하시오. (IN)

질의 3-30   대한미디어에서 출판한 도서를 구매한 고객의 이름을 보이시오. (IN)

질의 3-31   출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오. (AVG)

질의 3-32   도서를 주문하지 않은 고객의 이름을 보이시오. - 합집합 UNION, 차집합 MINUS, 교집합 INTERSECT

질의 3-33  주문이 있는 고객의 이름과 주소를 보이시오.
반응형
반응형

테이블 데이터

DROP TABLE Book;
DROP TABLE Customer;
DROP TABLE Orders;
DROP TABLE Imported_Book;

CREATE TABLE Book (
bookid NUMBER(2) PRIMARY KEY,
bookname VARCHAR2(40),
publisher VARCHAR2(40),
price NUMBER(8)
);

CREATE TABLE Customer (
custid NUMBER(2) PRIMARY KEY,
name VARCHAR2(40),
address VARCHAR2(50),
phone VARCHAR2(20)
);


CREATE TABLE Orders (
orderid NUMBER(2) PRIMARY KEY,
custid NUMBER(2) REFERENCES Customer(custid),
bookid NUMBER(2) REFERENCES Book(bookid),
saleprice NUMBER(8) ,
orderdate DATE
);

-- Book, Customer, Orders 데이터 생성

INSERT INTO Book VALUES(1, '축구의 역사', '굿스포츠', 7000);
INSERT INTO Book VALUES(2, '축구아는 여자', '나무수', 13000);
INSERT INTO Book VALUES(3, '축구의 이해', '대한미디어', 22000);
INSERT INTO Book VALUES(4, '골프 바이블', '대한미디어', 35000);
INSERT INTO Book VALUES(5, '피겨 교본', '굿스포츠', 8000);
INSERT INTO Book VALUES(6, '역도 단계별기술', '굿스포츠', 6000);
INSERT INTO Book VALUES(7, '야구의 추억', '이상미디어', 20000);
INSERT INTO Book VALUES(8, '야구를 부탁해', '이상미디어', 13000);
INSERT INTO Book VALUES(9, '올림픽 이야기', '삼성당', 7500);
INSERT INTO Book VALUES(10, 'Olympic Champions', 'Pearson', 13000);


INSERT INTO Customer VALUES (1, '박지성', '영국 맨체스타', '000-5000-0001');
INSERT INTO Customer VALUES (2, '김연아', '대한민국 서울', '000-6000-0001');
INSERT INTO Customer VALUES (3, '장미란', '대한민국 강원도', '000-7000-0001');
INSERT INTO Customer VALUES (4, '추신수', '미국 클리블랜드', '000-8000-0001');
INSERT INTO Customer VALUES (5, '박세리', '대한민국 대전', NULL);


-- 주문(Orders) 테이블의 책값은 할인 판매를 가정함
INSERT INTO Orders VALUES (1, 1, 1, 6000, TO_DATE('2014-07-01','yyyy-mm-dd'));
INSERT INTO Orders VALUES (2, 1, 3, 21000, TO_DATE('2014-07-03','yyyy-mm-dd'));
INSERT INTO Orders VALUES (3, 2, 5, 8000, TO_DATE('2014-07-03','yyyy-mm-dd'));
INSERT INTO Orders VALUES (4, 3, 6, 6000, TO_DATE('2014-07-04','yyyy-mm-dd'));
INSERT INTO Orders VALUES (5, 4, 7, 20000, TO_DATE('2014-07-05','yyyy-mm-dd'));
INSERT INTO Orders VALUES (6, 1, 2, 12000, TO_DATE('2014-07-07','yyyy-mm-dd'));
INSERT INTO Orders VALUES (7, 4, 8, 13000, TO_DATE( '2014-07-07','yyyy-mm-dd'));
INSERT INTO Orders VALUES (8, 3, 10, 12000, TO_DATE('2014-07-08','yyyy-mm-dd'));
INSERT INTO Orders VALUES (9, 2, 10, 7000, TO_DATE('2014-07-09','yyyy-mm-dd'));
INSERT INTO Orders VALUES (10, 3, 8, 13000, TO_DATE('2014-07-10','yyyy-mm-dd'));
반응형

'SQL' 카테고리의 다른 글

SQL 질의문(쿼리문) 문제정답 (개인공부)  (0) 2023.03.11
SQL 질의문(쿼리문) 문제(개인공부)  (0) 2023.03.11
반응형
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium import webdriver
import pyperclip
import time


driver = webdriver.Chrome(r"C:\Users\이재은\Desktop\자동 로그인\chromedriver_win32/chromedriver.exe")
driver.implicitly_wait(10) #10초대기 설정
driver.get("https://www.naver.com")


driver.find_element(By.CLASS_NAME,'link_login').click()

user = {'id':'아이디','pw':'비밀번호'}

#이미지 캡차 발생
#driver.find_element(By.ID,'id').send_keys(user['id'])
#driver.find_element(By.ID,'pw').send_keys(user['pw'])
#driver.find_element(By.CLASS_NAME, 'btn_global').click()

driver.find_element(By.ID,'id').click()
pyperclip.copy(user['id'])
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.find_element(By.ID,'pw').click()
pyperclip.copy(user['pw'])
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.find_element(By.XPATH,'//*[@id="log.login"]').send_keys(Keys.ENTER)
반응형

'python' 카테고리의 다른 글

python 구글 자동로그인 프로그램  (0) 2023.03.08
반응형
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_autoinstaller
import subprocess
import shutil
import pyautogui

try:
    shutil.rmtree(r"C:\chrometemp")  # remove Cookie, Cache fileHjdy08254s
except FileNotFoundError:
    pass

try:
    subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 '
                     r'--user-data-dir="C:\chrometemp"')   # Open the debugger chrome
    
except FileNotFoundError:
    subprocess.Popen(r'C:\Users\binsu\AppData\Local\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 '
                     r'--user-data-dir="C:\chrometemp"')

option = Options()
option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
    
except:
    chromedriver_autoinstaller.install(True)
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
driver.implicitly_wait(10)

driver.get(
    url='https://accounts.google.com/signin/v2/identifier?hl=ko&passive=true&continue=https%3A%2F%2Fwww.google.com%2F'
        '%3Fgws_rd%3Dssl&ec=GAZAmgQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin')
# Google login page

pyautogui.write('아이디')    # Fill in your ID or E-mail
pyautogui.press('enter')
time.sleep(3)   # wait a process
pyautogui.write('비밀번호')   # Fill in your PW
pyautogui.press('enter')

 

반응형

'python' 카테고리의 다른 글

python 네이버 자동 로그인 프로그램  (0) 2023.03.08
반응형
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출
//Scanner는 java.util 패키지에 포함되어있다.

public class Worst_Fit2 { // Worst_Fit2 라는 객체를 생성
	public static void main(String[] args) {// 접근 한정자를 public으로 설정(어디서든지 사용가능)
		// static으로 메모리를 미리 할당
		// void는 함수가 끝날 때 리턴값이 없다.
		// main은 메인 함수로 쓰여지는것
		// String[] args는 args를 문자열로 사용하겠다 라는 의미

		Scanner in = new Scanner(System.in); // 객체를 생성 System.in은 키보드로 입력받기위해 사용
		int[] mem = new int[5]; // 정수형mem배열값을 5로 선언
		int[] ps = new int[5]; // 정수형ps배열값을 5로 선언
		int count = 0; // 정수형 변수 count 값을 0으로 초기화 - mem의 배열 인자값으로 사용할 변수
		int temp = 0; // 정수형 변수 temp값을 0으로 초기화

		System.out.println(); // 줄 띄우기

		System.out.print("메모리 입력 : "); // 메모리 입력 - 출력문
		for (int i = 0; i < 5; i++) { // i 는 0~4까지
			mem[i] = in.nextInt(); // mem[i] 에 값을 입력
		}
		System.out.print("프로세스값 입력 : "); // 프로세스 입력 - 출력문
		for (int i = 0; i < 5; i++) { // i는 0~4까지
			ps[i] = in.nextInt(); // ps[i] 에 값을 입력
		}

		System.out.println(); // 줄띄우기
		System.out.println(); // 줄띄우기

		for (int j = 0; j < 4; j++) { // 0~4까지 1씩 증가//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
			for (int i = 0; i < 4; i++) { // 0~3까지 1씩 증가 //조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
				if (mem[i] < mem[i + 1]) { // mem[i]가 mem[i+1]보다 클때 실행
					temp = mem[i]; // temp, mem[i] 을 템프로 교환
					mem[i] = mem[i + 1]; // mem[i] 와 mem[i+1]를 교환
					mem[i + 1] = temp; // mem[i+1]을 temp와 교환
				}
			}
		}

		for (int i = 0; i < 5; i++) { // i는 0~4까지
			if (ps[i] <= mem[count]) { // ps[i]값이 mem[count]값보다 작거나 같다면 조건문 실행
				System.out.print("p" + count + " - 사용된 메모리 공간 : " + mem[count]); // 사용된 메모리 공간 출력문
				mem[count] = mem[count] - ps[i]; // mem[count]값에 ps[i]값을 빼준다
				if (mem[count] < 0) { // 만약 값을 빼줬는데 0보다 작아진다면
					mem[count] = mem[count] + ps[i]; // 다시 ps[i]값을 더해주고
					count++; // count값을 다시 올려준뒤 - 다음 메모리로 이동
					mem[count] = mem[count] - ps[i];// 증가된 count값으로 mem[count] 에 ps[i]값을 다시 빼준다
				}
				System.out.print("[" + mem[count] + "]"); // mem[count]값 출력문
				System.out.println(); // 줄띄우기
			} else if (mem[count] < ps[i]) { // mem[count]값이 ps[i]보다 작다면
				count++; // count값 증가
				System.out.print("p" + count + " - 사용된 메모리 공간 : " + mem[count]); // 사용된 메모리 공간 출력문
				mem[count] = mem[count] - ps[i]; // mem[count]값에 ps[i]값 빼주기
				System.out.print("[" + mem[count] + "]"); // 빠진 메모릭값 출력문
				System.out.println(); // 줄띄우기
			}
		}

	}
}
반응형
반응형
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출
//Scanner는 java.util 패키지에 포함되어있다.

public class Best_Fit2 { // Best_Fit2 라는 객체를 생성
	public static void main(String[] args) {// 접근 한정자를 public으로 설정(어디서든지 사용가능)
		// static으로 메모리를 미리 할당
		// void는 함수가 끝날 때 리턴값이 없다.
		// main은 메인 함수로 쓰여지는것
		// String[] args는 args를 문자열로 사용하겠다 라는 의미

		Scanner in = new Scanner(System.in); // 객체를 생성 System.in은 키보드로 입력받기위해 사용
		int[] mem = new int[5]; // 정수형mem배열값을 5로 선언
		int[] ps = new int[5]; // 정수형ps배열값을 5로 선언
		int count = 0; // 정수형 변수 count 값을 0으로 초기화 - mem의 배열 인자값으로 사용할 변수
		int temp = 0; // 정수형 변수 temp값을 0으로 초기화

		System.out.println(); // 줄띄우기

		System.out.print("메모리 입력 : "); // 메모리 입력 - 출력문
		for (int i = 0; i < 5; i++) { // i 는 0~4까지
			mem[i] = in.nextInt(); // mem[i] 에 값을 입력
		}
		System.out.print("프로세스값 입력 : "); // 프로세스 입력 - 출력문
		for (int i = 0; i < 5; i++) { // i는 0~4까지
			ps[i] = in.nextInt(); // ps[i] 에 값을 입력
		}

		System.out.println(); // 줄띄우기
		System.out.println(); // 줄띄우기

		for (int j = 0; j < 4; j++) { // 0~4까지 1씩 증가//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
			for (int i = 0; i < 4; i++) { // 0~3까지 1씩 증가 //조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
				if (mem[i] > mem[i + 1]) { // mem[i]가 mem[i+1]보다 클때 실행
					temp = mem[i]; // temp, mem[i] 을 템프로 교환
					mem[i] = mem[i + 1]; // mem[i] 와 mem[i+1]를 교환
					mem[i + 1] = temp; // mem[i+1]을 temp와 교환
				}
			}
		}
		for (int i = 0; i < 5; i++) { // i는 0~4까지
			if (ps[i] <= mem[count]) { // ps[i]값이 mem[count]값보다 작거나 같다면 조건문 실행
				System.out.print("p" + count + " - 사용된 메모리 공간 : " + mem[count]); // 사용된 메모리 공간 출력문
				mem[count] = mem[count] - ps[i]; // mem[count]값에 ps[i]값을 빼준다
				if (mem[count] < 0) { // 만약 값을 빼줬는데 0보다 작아진다면
					mem[count] = mem[count] + ps[i]; // 다시 ps[i]값을 더해주고
					count++; // count값을 다시 올려준뒤 - 다음 메모리로 이동
					mem[count] = mem[count] - ps[i];// 증가된 count값으로 mem[count] 에 ps[i]값을 다시 빼준다
				}
				System.out.print("[" + mem[count] + "]"); // mem[count]값 출력문
				System.out.println(); // 줄띄우기
			} else if (mem[count] < ps[i]) { // mem[count]값이 ps[i]보다 작다면
				count++; // count값 증가
				System.out.print("p" + count + " - 사용된 메모리 공간 : " + mem[count]); // 사용된 메모리 공간 출력문
				mem[count] = mem[count] - ps[i]; // mem[count]값에 ps[i]값 빼주기
				System.out.print("[" + mem[count] + "]"); // 빠진 메모릭값 출력문
				System.out.println(); // 줄띄우기
			}
		}

	}
}
반응형
반응형
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출
//Scanner는 java.util 패키지에 포함되어있다.

public class First_Fit2 { // First_Fit2 라는 객체를 생성
	public static void main(String[] args) {// 접근 한정자를 public으로 설정(어디서든지 사용가능)
		// static으로 메모리를 미리 할당
		// void는 함수가 끝날 때 리턴값이 없다.
		// main은 메인 함수로 쓰여지는것
		// String[] args는 args를 문자열로 사용하겠다 라는 의미

		Scanner in = new Scanner(System.in); // 객체를 생성 System.in은 키보드로 입력받기위해 사용
		int[] mem = new int[5]; // 정수형mem배열값을 5로 선언
		int[] ps = new int[5]; // 정수형ps배열값을 5로 선언
		int count = 0; // 정수형 변수 count 값을 0으로 초기화 - mem의 배열 인자값으로 사용할 변수

		System.out.println();// 줄띄우기

		System.out.print("메모리 입력 : "); // 메모리 입력 - 출력문
		for (int i = 0; i < 5; i++) { // i 는 0~4까지
			mem[i] = in.nextInt(); // mem[i] 에 값을 입력
		}
		System.out.print("프로세스값 입력 : "); // 프로세스 입력 - 출력문
		for (int i = 0; i < 5; i++) { // i는 0~4까지
			ps[i] = in.nextInt(); // ps[i] 에 값을 입력
		}

		System.out.println(); // 줄띄우기
		System.out.println(); // 줄띄우기

		for (int i = 0; i < 5; i++) { // i는 0~4까지
			if (ps[i] <= mem[count]) { // ps[i]값이 mem[count]값보다 작거나 같다면 조건문 실행
				System.out.print("p" + count + " - 사용된 메모리 공간 : " + mem[count]); // 사용된 메모리 공간 출력문
				mem[count] = mem[count] - ps[i]; // mem[count]값에 ps[i]값을 빼준다
				if (mem[count] < 0) { // 만약 값을 빼줬는데 0보다 작아진다면
					mem[count] = mem[count] + ps[i]; // 다시 ps[i]값을 더해주고
					count++; // count값을 다시 올려준뒤 - 다음 메모리로 이동
					mem[count] = mem[count] - ps[i];// 증가된 count값으로 mem[count] 에 ps[i]값을 다시 빼준다
				}
				System.out.print("[" + mem[count] + "]"); // mem[count]값 출력문
				System.out.println(); // 줄띄우기
			} else if (mem[count] < ps[i]) { // mem[count]값이 ps[i]보다 작다면
				count++; // count값 증가
				System.out.print("p" + count + " - 사용된 메모리 공간 : " + mem[count]); // 사용된 메모리 공간 출력문
				mem[count] = mem[count] - ps[i]; // mem[count]값에 ps[i]값 빼주기
				System.out.print("[" + mem[count] + "]"); // 빠진 메모릭값 출력문
				System.out.println(); // 줄띄우기
			}
		}

	}
}
반응형