카테고리 없음

230113

Berylly 2023. 1. 18. 19:59

T.김동식

 

 

 

 

이론

 

재귀 recursion, 마트료시카 인형, 자기 자신을 참조하는 것
계승 factorial 자연수의 계승, !, 그 수보다 작거나 같은 모든 양의 정수의 곱

 

final로 선언하면 상수가 된다.

 

Stream 
주고받는것, 입력스트림(System.in), 출력스트림(System.out)

 

정렬 알고리즘
퀵정렬 한 요소(pivot 피벗)를 선택, 기준으로 작은 요소들은 모두왼쪽 큰 요소들은 모두 오른쪽으로, 더이상 분할이 불가능 할 때까지 반복 
힙정렬 트리구조, 큰것부터 순서대로 데이터를 추출하는 성질
버블정렬 저울대, 큰것부터 순서대로 데이터를 추출하는 성질

 

기본 자료형(bsil fd cb)의 객체를 제공하는 클래스 Wrapper

 

자바에서 클래스의 동적 로딩 방식을 제공하는 메서드는 Class.forNmae()

 

 

 

 

 

interface, 선언하는 역할, 객체생성할 수 없다.
implements, interface가 선언한 것을 수행.

class H{}
interface F{}
interface D{}

class G extends H implements F, D{}

 

 

 

 

LinkedList

데이터는 포인터와 주소를 사용하여 연결
각 데이터는 노드라 불리며, 
ArrayList보다 검색에 있어서는 느리다는 단점이 있으나
삭제가 이루어지는 경우 용이하여 ArrayList보다 선호

LinkedList<String> linkedList = new LinkedList<String>();
linkedList.add("A");
linkedList.add("B");
System.out.println(linkedList); //[A, B]
linkedList.add(0, "0");
System.out.println(linkedList); //[0, A, B]
linkedList.addFirst("First");
linkedList.addLast("Last");
System.out.println(linkedList);//[First, 0, A, B, Last]
linkedList.remove(1);
System.out.println(linkedList); //[First, A, B, Last]
linkedList.removeFirst();
System.out.println(linkedList); //[A, B, Last]
linkedList.removeLast();
System.out.println(linkedList); //[A, B]

 

 

Stack을 구현해보자, 

마지막 순서부터 remove되는것이 특징

ArrayList<String>  arrStack = new ArrayList<String> ();
void push(String data) {arrStack.add(data);}
	
String pop() {int len = arrStack.size();if(len==0) {
return "스택이 비었다.";}
return arrStack.remove(len-1);}
MyStack stack = new MyStack();
stack.push("A");
stack.push("B");
stack.push("C");
		
System.out.println(stack.pop()); //C
System.out.println(stack.pop()); //B
System.out.println(stack.pop()); //A
System.out.println(stack.pop()); //스택이 비었다.

 

 

Queue 을 구현해보자, 

들어온 순서대로 remove되는것이 특징

ArrayList<String>  arrQueue = new ArrayList<String> ();
void enQueue(String data) {arrQueue.add(data);}
	
String deQueue() {
int len = arrQueue.size();
if(len==0) {System.out.println();return "큐가 비었다.";
}return arrQueue.remove(0);}

MyQueue myQueue = new MyQueue();
myQueue.enQueue("A");
myQueue.enQueue("B");
myQueue.enQueue("C");
System.out.println(myQueue.deQueue()); //A
System.out.println(myQueue.deQueue()); //B
System.out.println(myQueue.deQueue()); //C
System.out.println(myQueue.deQueue()); //큐가 비었다.

 

 

 

 

 

 

 

 

Python

 

웹 드라이버
크롬을 제어 할 수 있다, 자동화개념
댓글 더보기를 계속 클릭하게 하거나.. 자동화 가능

 

크롬 버전 확인 버전 버전 108.0.5359.125(공식 빌드) (64비트)
크롬 드라이버 다운 
https://chromedriver.storage.googleapis.com/index.html?path=108.0.5359.71

 

https://chromedriver.storage.googleapis.com/index.html?path=108.0.5359.71

 

chromedriver.storage.googleapis.com

 

 

댓글수집을 해보자.

import selenium
import time
from urllib.request import urlopen
from bs4 import BeautifulSoup
from selenium.webdriver import Chrome
driver_path = 'C:/ai2/0. STUDY/tool/chromedriver_win32/chromedriver.exe'
driver = Chrome(driver_path)

url = 'https://n.news.naver.com/mnews/article/comment/022/0003285339?sid=100'
driver.get(url)
from selenium.webdriver.common.by import By
driver.find_elements(By.CLASS_NAME, 'u_cbox_btn_more')

for i in range(3):
    clickable = driver.find_element(By.CLASS_NAME, 'u_cbox_btn_more')
    time.sleep(1)
    clickable.click()
    print("클릭했다")
driver.page_source
soup = BeautifulSoup(driver.page_source, "lxml")
list = soup.find_all('span', {'class':'u_cbox_contents'})
for i in list:
    print(i.text+"\n")