Python Tensorflow 설치 사전 준비 CUDA 설치 https://oboki.net/workspace/system/linux/ubuntu-cuda-%EC%84%A4%EC%B9%98/ Python 설치 https://oboki.net/workspace/programming/language/python/python-python3-%EC%84%A4%EC%B9%98-%EC%86%8C%EC%8A%A4-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0/ Tensorflow 설치 pip3 install tensorflow-gpu Tensorflow 동작 확인 아래 소스를 동작시키면서, import tensorflow msg = tensorflow.constant(‘Hello Tensorflow!’) sess = tensorflow.Session() print(sess.run(msg)) 동시에 nvidia-smi 명령으로 위 예제 프로그램이 gpu 를 잘 이용하고 있는지 확인
[BaekJoon Online Judge] 2606 – 바이러스
[BaekJoon Online Judge] 2606 – 바이러스 문제 https://www.acmicpc.net/problem/2606 소스코드 dfs 를 이용해서 문제를 해결한다. 양방향 간선으로 표현된 네트워크 입력을 그래프로 표현한 뒤 1번 컴퓨터부터 탐색을 시작하면 바이러스에 감염되는 모든 컴퓨터를 찾아낼 수 있다. N = int(input()) V = int(input()) graph = [[0 for _ in range(N)] for _ in range(N)] for i in range(V): a,b […]
[BaekJoon Online Judge] 2667 – 단지번호붙이기
[BaekJoon Online Judge] 2667 – 단지번호붙이기 문제 https://www.acmicpc.net/problem/2667 소스코드 지도 내의 모든 좌표를 탐색하여, 집이 발견될 때마다 그 집의 좌표부터 dfs를 이용해 연결된 집을 모두 찾는다. 계속해서 앞의 과정을 반복하는데 단지 번호만 하나씩 늘려주기만 하면 해결할 수 있다. dx=[0,1,0,-1] dy=[1,0,-1,0] N = int(input()) town = [list(map(int,list(input()))) for _ in range(N)] district = 1 cnts,stack = […]
[BaekJoon Online Judge] 7569 – 토마토
[BaekJoon Online Judge] 7569 – 토마토 문제 https://www.acmicpc.net/problem/7576 소스코드 7576 문제에서 공간 차원이 하나 늘어난 문제. 7576 문제와 마찬가지로 bfs를 이용한 최단거리 문제로 해결할 수 있다. from collections import deque dx = [0,1,0,-1,0,0] dy = [1,0,-1,0,0,0] dz = [0,0,0,0,-1,1] M,N,H = map(int,input().split()) field = [[list(map(int,input().split())) for _ in range(N)] for _ in range(H)] visit = […]
[BaekJoon Online Judge] 7576 – 토마토
[BaekJoon Online Judge] 7576 – 토마토 문제 https://www.acmicpc.net/problem/7576 소스코드 bfs를 이용한 최단거리 문제로 해결할 수 있다. 익은 토마토 옆이면 그 다음 사이클에 익은 상태로 바뀌기 때문에, 초기 상태에 익은 토마토 모두를 q에 넣은 뒤 bfs 탐색을 시작한다. 탐색이 끝나면 visit 배열에서 가장 높은 숫자가 상자 내의 모든 토마토가 익는 최소 날짜가 된다. from collections import […]
[BaekJoon Online Judge] 12100 – 2048 (Easy)
[BaekJoon Online Judge] 12100 – 2048 (Easy) 문제 https://www.acmicpc.net/problem/12100 소스코드 문제에서 최대 다섯 번의 방향 전환이 가능하다고 제약을 걸었기 때문에, 5중 루프를 돌려서 가능한 모든 경우의 수를 만들었다. 앞서 만든 경우에 수에 대해, 문제에서 설명한 2048 게임룰(방향 전환에 따라 블록이 합쳐지는 조건)을 노가다로 작성해서 문제를 해결할 수 있었다. from copy import deepcopy def game(direction): global […]
[BaekJoon Online Judge] 13458 – 시험 감독
[BaekJoon Online Judge] 13458 – 시험 감독 문제 https://www.acmicpc.net/problem/13458 소스코드 총 감독관은 오직 1명만 있어야 하므로, 총 감독관 한 명이 감당할 수 있는 인원을 초과한 인원에 대해서 필요한 부감독관 수를 산정하면 되는데 if – else 만으로 구현하니 시간초과가 나서, elif 조건을 하나 더 추가해서, d[] 배열에 메모이제이션 한 결과를 리턴할 수 있도록 했다. N = […]
[PySpark] dataframe을 python 자료형(dict)으로 변형하기
[PySpark] dataframe을 python 자료형(dict)으로 변형하기 spark driver 에서 데이터를 바로 사용하는 경우, dataframe은 다루기가 어려운 것 같다. dataframe의 collect()와 asDict()를 이용하면 Python 자료형으로 변환할 수 있다. dataframe 생성 pyspark에서 elasticsearch index를 조회해 dataframe을 생성한다. >>> from pyspark.sql import SQLContext >>> sqlContext = SQLContext(sc) >>> df = sqlContext.read.format(“org.elasticsearch.spark.sql”).option(“es.nodes”,”192.168.179.141:9200″).option(“es.nodes.discovery”, “true”).load(“${INDEX}/${TYPE}”) >>> df.registerTempTable(“tab”) >>> df = sqlContext.sql(“SELECT distinct […]
[PySpark] Elasticsearch Index 에서 DataFrame 생성하기
[PySpark] Elasticsearch Index 에서 DataFrame 생성하기 elasticsearch-hadoop connector 를 이용해서 spark dataframe을 생성한다. Spark 설치 spark 다운로드 및 환경설정 필요한 요소만 설치하고자 하는 경우 소스코드를 내려받아서 maven을 이용해 빌드해도 되지만 pre-compiled 바이너리를 이용한다. wget http://mirror.navercorp.com/apache/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz tar -xvzf spark-2.3.2-bin-hadoop2.7.tgz -C /app/spark/. mv /app/spark/spark-2.3.2-bin-hadoop2.7 /app/spark/2.3.2 find /app/spark/2.3.2 -mindepth 1 -maxdepth 1 -type d | xargs -I {} […]
[Python] ipstack API – IP 위치 정보 조회
ipstack API – IP 위치 정보 조회 https://ipstack.com/ 에 접속하면 ip 주소로 위치 정보 검색을 해볼 수가 있는데 이걸 API로 제공한다. 월 1만회 조회는 무료로 사용할 수 있고 그 이상을 원하면 전문가, 기업용 플랜을 신청해야한다. API API 사용방법은 https://ipstack.com/documentation 페이지에 나와있는데 기본적인 사용법은 아래와 같다. URL http://api.ipstack.com/134.201.250.155?access_key=YOUR_ACCESS_KEY Response { “ip”: “134.201.250.155”, “hostname”: “134.201.250.155”, “type”: “ipv4”, […]