var aData = 10

if (aData%2==0) {
	console.log("even number");
} else {
	console.log("odd number");
}

'언어 > javascript' 카테고리의 다른 글

mysql javascript 연동  (0) 2016.05.26
0524 <javascript 상속>  (0) 2016.05.24
논리 연산자  (0) 2016.05.23

package java_01;
import java.util.Scanner;

public class GuGuDan {
	
	public static int[] dan = new int[2];
	public static boolean checkNumber = false;

	public static void main(String[] args) {
		
		try (Scanner input = new Scanner(System.in)) {
			while (true) {
				
				for (int i = 0; i < dan.length; i++) {
					dan[i] = input.nextInt();
				}
				
				if (checkFunc(dan)) {
					break;
				}
				
				System.out.println("INPUT ERROR!");
			}
		}
		
		printGuGuDan(dan);
		
	} // end of main function 
	
	public static boolean checkFunc(int dan[]) {
		boolean flag = false;
		for (int i = 0; i < dan.length; i++) {
			if (2 <= dan[i] && dan[i] <= 9) {
				flag = true;
			} else {
				flag = false;
			}
		}
		return flag;
	} // end of checkFunc function
	
	public static void printGuGuDan(int dan[]) {
		for (int i = 1; i <= 9; i++) {
			for (int j = 0; j < dan.length; j++) {
				System.out.printf("%d * %d = %d", dan[j], i, dan[j]*i);
				if ( j != dan.length-1) {
					System.out.print("\t");
				} else {
					System.out.println();
				}
			}
		}
	} // end of printGuGuDan function 
}

'언어 > java' 카테고리의 다른 글

정올 1856 (d+3)  (1) 2020.04.22
정올 1303 문제 풀이 (자바)  (0) 2020.04.21
정올 587번 문제  (0) 2020.04.06
변수 [ Java의 정석 ]  (0) 2020.04.06
elasticsearch + java + index 삭제  (0) 2019.12.14

https://search.naver.com/search.naver?where=nexearch&sm=tab_etc&query=%ED%88%AC%ED%91%9C%EC%9C%A8

import requests
import urllib
import json
from bs4 import BeautifulSoup
import time
from elasticsearch import Elasticsearch

class Poll():

    def __init__(self):

        self._url         = "https://search.naver.com/search.naver"
        self._params      = {"sm": "top_hty", "fbm": 0, "ie": "utf8"}
        self._cllect_time = time.strftime("%Y%m%d%H%M%S", time.localtime())
        self._total_data  = list()
        self._es          = Elasticsearch (hosts=["http://", "http://", "http://"])

    def url_req(self):

        param_encode = urllib.parse.urlencode (self._params) +"&query={}".format("이시각 투표율")
        url = self._url + "?" + param_encode
        print (url)

        session = requests.Session()

        try:

            html = session.get(url)
        except:
            print("요청 에러{}".format(self.total_data))
            pass
        else:

            if html.status_code == 200 and html.ok:
                bs_obj = BeautifulSoup(html.text, "html.parser")
                print(bs_obj.title.string)

                graph_view = bs_obj.select_one("ul.graph_view")
                v2_list = graph_view.select("li.v2 > a")

                for v in v2_list:
                    locals_name = v.select_one("strong.num_standard").string
                    percentages = v.select_one("span.graph_bar > span.num > span.num_data2").text
                    d = {"name": locals_name, "value": percentages[:-1], "cllct": self._cllect_time}

                    self._total_data.append(d)

                if len(self._total_data) != 0:
                    #
                    # 데이터 파일 생성
                    #
                    self.mk_ndjson()

    def mk_ndjson(self):

        with open("/home/elastic/Desktop/nd_json_data/polling_{}.json".format(self._cllect_time), "a", encoding="utf-8") as f:

            for i in range(0, len(self._total_data)):
                f.write(json.dumps(self._total_data[i], ensure_ascii=False))

                if i != len(self._total_data)-1:
                    f.write("\n")

            f.close()

    def __del__(self):
        print("=============================================")
        print("끝 : {}".format(time.strftime("%Y%m%d %H:%M:%S")))

if __name__ == "__main__":
    print("=============================================")
    print("시작 : {}".format(time.strftime("%Y%m%d %H:%M:%S")))
    p = Poll()
    p.url_req()

 

'언어 > python' 카테고리의 다른 글

코로나 데이터 수집 (파이썬)  (0) 2020.07.18
네이버 python 지식인 답변  (0) 2020.06.06
pdf 변환  (0) 2019.12.18
python으로 pdf 파일 read  (0) 2019.12.08
백준 2108  (0) 2019.12.08

package Q01;
import java.util.Scanner;

public class JungAll_587 {

    public static void main(String[] args) {
        Scanner input_ = new Scanner(System.in);
        int nNumber = 0;
        nNumber = input_.nextInt();

        for (int i = 1; i <= nNumber; i++) {
            System.out.println("recursive");
        }
    }
}

'언어 > java' 카테고리의 다른 글

정올 1303 문제 풀이 (자바)  (0) 2020.04.21
정올 1291 : 구구단 문제  (0) 2020.04.20
변수 [ Java의 정석 ]  (0) 2020.04.06
elasticsearch + java + index 삭제  (0) 2019.12.14
elasticsearch java api : total index search  (0) 2019.04.22

변수( variable )

정의 : 단 하나의 값을 저장할 수 있는 메모리 공간

 

 

1.2 변수의 선언과 초기화

int nNumber = 10;

int  nNumber
변수 타입 변수이름

변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 코기의 저장공간이 확보되고, 앞으로 이 저장공간은 '변수이름'을 통해 사용가능

 

 

변수의 초기화

- 반드시 변수를 '초기화 (initialization)'

=> 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 "알 수 없는 값( 쓰레기 값, garbage value )" 이 남아 있을 수도 있기 대문

 

초기화를 하지 않고 사용한 경우

초기화하지 않은 변수를 사용한 경우
에러로그

 

1.3 변수의 명명규칙

 1. 대소문자가 구분되며 길이에 제한이 없다.

 2. 예약어를 사용해서는 안된다.

 3. 숫자로 시작해서는 안 된다.

 4. 특수문자는 '_' 와 '$'만을 허용한다.

가장 힘들어 하는 일

========================================================================

가장 중요]

그 외에 필수적인 것은 아니지만 자바 프로그래머들에게 권장하는 규칙이 있다.

 ㄱ] 클래스 이름의 첫 글자는 항상 대문자로 한다.

  -> 변수와 메서드의 이름의 첫 글자는 항상 소문자로 한다.

 ㄴ] 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.

  -> getConfigData

 ㄷ] 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_' 로 구분한다.

  -> MAX_NUMBER 

'언어 > java' 카테고리의 다른 글

정올 1291 : 구구단 문제  (0) 2020.04.20
정올 587번 문제  (0) 2020.04.06
elasticsearch + java + index 삭제  (0) 2019.12.14
elasticsearch java api : total index search  (0) 2019.04.22
elasticsearch java api search  (0) 2019.03.13

c언어 linkedlist

언어/c언어2019. 12. 31. 23:00
# include <stdio.h>
# include <stdlib.h>
# include <string.h>

typedef struct node_{

	char cData;
	struct node_* nodeNext;
} node_;

typedef struct {

	node_* head;
	node_* tail;
}linkedlist;

linkedlist* createNode();
void init(linkedlist**);
void dataInsrt(linkedlist**, char*);
void dataPrint(linkedlist**);
void firstNodeRemove(linkedlist**); 
void lastNodeRemove(linkedlist**);
void memoryFree(linkedlist**);

//void memoryFree(node_*);

int main(void) {

	linkedlist* node = NULL;
	char nodeString[] = "ABCDEFGC";

	node = createNode();
	init(&node);
	dataInsrt(&node, nodeString);
	dataPrint(&node);
	//memoryFree(node->head->nodeNext);
    firstNodeRemove(&node);
	dataPrint(&node);
    lastNodeRemove(&node);
    dataPrint(&node);
    memoryFree(&node);

    return 0;

} // end of main function

linkedlist* createNode() {

	linkedlist* createNode = NULL;
	createNode = (linkedlist*)malloc(sizeof(linkedlist));

	if (createNode == NULL) {
		exit(1);
	}
	else {
		createNode->head = NULL;
		createNode->tail = NULL;
	}
	return createNode;
} // end of createNode function

void init(linkedlist** param) {

	(**param).head = (node_*)malloc(sizeof(node_));
	(**param).tail = (node_*)malloc(sizeof(node_));

	if ((**param).head == NULL || (**param).tail == NULL) {
		exit(1);
	}
	else {

		(**param).head->cData = ' ';
		(**param).head->nodeNext = NULL;
		(**param).tail->cData = ' ';
		(**param).tail->nodeNext = NULL;
	}
} // end of init function

void dataInsrt(linkedlist** param, char* cData) {

	
	for (unsigned int i = 0; i < strlen(cData); i++) {
	
		node_* createNode = NULL;
		createNode = (node_*)malloc(sizeof(node_));

		if (createNode != NULL) {
			
			createNode->cData = *(cData + i);

			createNode->nodeNext = NULL;

			if ((**param).head->nodeNext == NULL && (**param).tail->nodeNext == NULL) {
				
				(**param).head->nodeNext = createNode;
				(**param).tail->nodeNext = createNode;
			}
			else {
				
				(**param).tail->nodeNext->nodeNext = createNode;
				(**param).tail->nodeNext = createNode;
			}
		}
	}
} // end of dataInsrt function

void dataPrint(linkedlist** param) {

	node_* indexNode = NULL;

	// 데이터가 한개도 없는 경우
	if ((**param).head->nodeNext != NULL && (**param).tail->nodeNext != NULL) {

		indexNode = (**param).head->nodeNext;
		while (indexNode != NULL) {
			printf("%c [%p]", indexNode->cData, indexNode);

			if (indexNode->nodeNext != NULL) {

				printf(" -> ");
			}
			// 노드 이동
			indexNode = indexNode->nodeNext;
		}
		printf("\n");
	}
} // end of dataPrint function

/*
void memoryFree(node_* param) {

	// c언어는 java 처럼 가비지 컬렉터가 따로 동작하는 구조가 아니기 때문에 
	// 메모리 해제를 반드시 해야 한다.
	// 재귀함수를 사용하여 메모리 해제를 시도한다.

	if (param == NULL) {
		return;
	}
	else {

		node_* rmNode = NULL;
		node_* mvNode = NULL;

		printf("해제 시킬 메모리 주소 : %p\n", param);

		rmNode = param;
		mvNode = param->nodeNext;
		free(rmNode);
		memoryFree(mvNode);
	}
}*/


void firstNodeRemove(linkedlist** param) {
    
    node_* rmNode = NULL;

    if ( (**param).head->nodeNext != NULL && (**param).tail->nodeNext != NULL ) {
        
        rmNode = (**param).head->nodeNext;
        (**param).head->nodeNext = rmNode->nodeNext;
        free(rmNode);

        // 데이터가 한개 인 경우
        if ( (**param).head->nodeNext == (**param).tail->nodeNext ) {
    
            (**param).tail->nodeNext = NULL;
        } 
        
    }
} // end of firstNodeRemove function

void lastNodeRemove(linkedlist** param) {
    
    node_* rmNode   = NULL;
    node_* indxNode = NULL;

    if ( (**param).head->nodeNext != NULL && (**param).tail->nodeNext != NULL ) {

       // 데이터가 한개 인 경우
       if ( (**param).head->nodeNext == (**param).tail->nodeNext ) {
           
           rmNode = (**param).head->nodeNext;
           (**param).head->nodeNext = NULL;
           (**param).tail->nodeNext = NULL;
           free(rmNode);
       }
       else {

           indxNode = (**param).head->nodeNext;
           while (indxNode->nodeNext->nodeNext != NULL) {
                
               indxNode = indxNode->nodeNext;
           }
           indxNode->nodeNext = NULL;
           (**param).tail->nodeNext = indxNode;
           rmNode = indxNode->nodeNext;
           free(rmNode);
       }
    }
} // end of lastNodeRemove function

void memoryFree(linkedlist** param) {

    node_* rmNode   = NULL;
    node_* indxNode = NULL;

    if ( (**param).head->nodeNext != NULL && (**param).tail->nodeNext != NULL ) {
        
        // 데이터가 한개 인 경우
        if ( (**param).head->nodeNext == (**param).tail->nodeNext ) {
            lastNodeRemove(param);
        } 
        else {
            indxNode = (**param).head->nodeNext;
            (**param).head->nodeNext = NULL;

            while (indxNode->nodeNext != NULL) {
                rmNode = indxNode;
                indxNode = indxNode->nodeNext;
                free(rmNode);
            }

            (**param).tail->nodeNext = NULL;
        }
    }

    free( (**param).head );
    free( (**param).tail );
}

'언어 > c언어' 카테고리의 다른 글

네이버 풀이  (0) 2019.05.18
c언어 네이버 풀이 중첩 for문을 사용해서 3을 입력하면  (0) 2019.05.06
네이버 풀이  (0) 2018.12.01
네이버 문제 풀이 - 최대공약수  (0) 2018.11.28
네이버 지식이 풀이  (0) 2018.11.28

pdf 변환

언어/python2019. 12. 18. 21:14
from pdflib import Document
import os
import base64

from ela_dir.Ela import Ela

class PDFObj():


    def __init__(self):

        #Ela.__init__(self)

        self._targetPath="./pdf_dir"


    def dirSearch(self):

        os.chdir(self._targetPath)
        cur = os.listdir()

        for f in cur:

            fname, fext = os.path.splitext(f)

            if fext == ".pdf":

                doc = Document(f)
                print(doc.metadata)

                for c, p in enumerate(doc):

                    strData = " ".join(p.lines).strip()
                    #encodedBytes = base64.b64encode(strData.encode("utf-8"))
                    #encodedStr = str(encodedBytes, "utf-8")

                    #e = {"page_" : c+1,
                    #     "data_" : encodedStr}

                    e = {"page_" : c+1, "data_": strData}

                    print(e)



if __name__ == "__main__":

    o = PDFObj()
    o.dirSearch()

'언어 > python' 카테고리의 다른 글

네이버 python 지식인 답변  (0) 2020.06.06
21대 국회의원 선거 크롤링  (0) 2020.04.15
python으로 pdf 파일 read  (0) 2019.12.08
백준 2108  (0) 2019.12.08
from csv to json convert + logstash  (0) 2019.11.26

	static public void indexRemoveQuery(RestHighLevelClient param, String targetIndex) {
		
		DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(targetIndex);
		try {
			
			param.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(targetIndex +" : index remove success");
	}

'언어 > java' 카테고리의 다른 글

정올 587번 문제  (0) 2020.04.06
변수 [ Java의 정석 ]  (0) 2020.04.06
elasticsearch java api : total index search  (0) 2019.04.22
elasticsearch java api search  (0) 2019.03.13
크롤링 => json 파일로 적재  (0) 2019.03.03

from pdflib import Document
import os
import base64

class PDFObj():


    def __init__(self):

        self._targetPath="./pdf_dir"


    def dirSearch(self):

        os.chdir(self._targetPath)
        cur = os.listdir()

        for f in cur:

            fname, fext = os.path.splitext(f)

            if fext == ".pdf":

                doc = Document(f)
                print(doc.metadata)

                for c, p in enumerate(doc):

                    print("{} ========================".format(p))
                    strData = " ".join(p.lines).strip()
                    encodedBytes = base64.b64encode(strData.encode("utf-8"))
                    encodedStr = str(encodedBytes, "utf-8")
                    print(encodedStr)
                    print(strData)

                    if c == 3:
                        exit(1)


if __name__ == "__main__":

    o = PDFObj()
    o.dirSearch()

 

 

테스트 환경

 => ubuntu 18.4

 => interpreter 3.6

'언어 > python' 카테고리의 다른 글

21대 국회의원 선거 크롤링  (0) 2020.04.15
pdf 변환  (0) 2019.12.18
백준 2108  (0) 2019.12.08
from csv to json convert + logstash  (0) 2019.11.26
네이버 기사 크롤링 => elasticsearch 적재  (0) 2019.07.12

백준 2108

언어/python2019. 12. 8. 18:23
from operator import itemgetter
from collections import Counter
import sys

class Q_2108():

    def __init__(self):

        self._numCnt = 0
        self._numList = list()
        self._totalSum = 0

    def numSetting(self):

        self._numCnt = int(sys.stdin.readline())

        for _ in range(self._numCnt):
            e = int(sys.stdin.readline())
            self._totalSum += e
            self._numList.append(e)

        # 데이터 정렬
        self._numList.sort()

    def arithMean(self):

        avr = round((float(self._totalSum)/len(self._numList)))
        print(avr)


    def middleNumber(self):

        print(self._numList[int(len(self._numList)/2)])


    def largeCnt(self):

        modeDict = Counter(self._numList)
        modes = modeDict.most_common()

        if len(self._numList) > 1:

            if modes[0][1] == modes[1][1]:
                mod = modes[1][0]
            else:
                mod = modes[0][0]
        else:
            mod = modes[0][0]

        print(mod)

        # keyNum = set(self._numList)
        # numCnt = [(k,self._numList.count(k)) for k in keyNum]
        #
        # # value값을 기준으로 정렬
        # numCnt.sort(key= lambda e:(e[1], e[0]), reverse=True)
        #
        # # list는 순서를 보존한다.
        # rawV     = [i[1] for i in numCnt]
        # largeNum = rawV[0]
        # largeCnt = rawV.count(largeNum)
        # largeArr = [i[0] for i in numCnt[:largeCnt]]
        #
        # if len(largeArr) == 1:
        #     print(largeArr[0])
        #
        # elif len(largeArr) > 1:
        #     if len(largeArr) == 2:
        #         print(largeArr[1])
        #     else:
        #         print(largeArr[len(largeArr)-2])

    def numRange(self):

        print(self._numList[len(self._numList)-1] - self._numList[0])


if __name__ == "__main__":
    q = Q_2108()
    q.numSetting()
    q.arithMean()
    q.middleNumber()
    q.largeCnt()
    q.numRange()

'언어 > python' 카테고리의 다른 글

pdf 변환  (0) 2019.12.18
python으로 pdf 파일 read  (0) 2019.12.08
from csv to json convert + logstash  (0) 2019.11.26
네이버 기사 크롤링 => elasticsearch 적재  (0) 2019.07.12
naver music 크롤링 + elasticsearch  (0) 2019.05.22