je_un의 등록된 링크

 je_un로 등록된 네이버 블로그 포스트 수는 186건입니다.

라즈베리파이에서 mqtt 실행하기 [내부링크]

MQTT란?Message Queuing Telemetry Transport의 약어로 ISO 표준 발행-구독 기반의 메시징 프로...

[알고리즘 개념] DFS(깊이 우선 탐색) [내부링크]

그래프는 비선형구조이기 때문에 모든 자료를 빠짐없이 검색하는 것이 중요한데 이때 사용하는 알고리즘이...

[Pytorch] Dataloader - epoch, batch, iteration [내부링크]

epoch전체 데이터 셋을 반복하는 횟수전체 데이터셋으로 forwardpropagation(순전파)와 backwardpropagatio...

[SQL] 특정 컬럼 문자 부분변경(치환) replace [내부링크]

replace('대상문자열', '기존데이터', '바꿀데이터')select replace([컬...

편의점 음식에도 희망이 [내부링크]

GS25의 새우로제파스타 ! 생각보다 맛있다기대를 전혀 안했는데 새우도 적당하고 마늘도 맛있다! 조금 짜...

[Pytorch] 과적합(Overfitting)을 막는 Dropout [내부링크]

Overfitting과적합이란 훈련 data에서는 100% accuracy를 내지만 실제로 test data에서는 낮은 예측율을 ...

[SQLite] 컬럼 삭제와 DROP COLUMN [내부링크]

잘못 만든 컬럼이 있어서 삭제하기 위해ALTER TABLE [테이블명] DROP COLUMN [컬럼명]...

[Python3] csv 파일 생성시 한글 깨짐 방지 [내부링크]

pandas나 csv 모듈을 이용해 데이터를 csv 파일로 내보낼 수 있는데 이때, encoding 설정을 utf-8로 해주어...

[Pytorch] 대문자 torch.Tensor와 소문자 torch.tensor의 차이 [내부링크]

리스트나 array를 tensor로 변환할 때 torch.Tensor나 torch.tensor를 많이 사용한다.둘은 tensor의 &#x27...

[백준] 2839. 설탕 배달 [내부링크]

풀이greedy algoritm 기초. 5kg 봉지를 우선으로 가져갈 수 있도록 하기 위해 5kg 봉지를 최대한으로 가...

랜덤 다이버시티 후속 전시, "After All This Time" 펜시브링(기억 반지) 제작 후기 [내부링크]

SNS에서 입소문 난 랜덤 다이버 시티의 후속 전시회가 열린다는 이야기에 바~로 예약했다 c인공지능...

[백준] 11399. ATM [내부링크]

-풀이아주아주 쉬운 greedy algorithm이다.시간의 합이 최소가 되기 위해서는 입력된 시간이 오름차순으로 ...

[Python3] JSON 파일 파싱하기 [내부링크]

JSON 이란?JSON 파싱을 하기에 앞서서 JSON이란 무엇인가에 대해 알아보도록 한다.JSON...

[데이터베이스] SQL과 NoSQL (MySQL vs. MongoDB) [내부링크]

https://academind.com/learn/web-dev/sql-vs-nosql/ 를 정리한 글입니다.SQL (관계형 데이터베이스)...

GET과 POST의 차이 [내부링크]

GET과 POST란HTTP 프로토콜이 제공해주는 7가지 메서드 중 웹서비스 개발에 주로 사용하는 메서...

[프로그래머스] 124 나라의 숫자 [내부링크]

-문제 설명124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표...

[Pytorch] 모델 저장하기/불러오기 [내부링크]

인공지능 모델은 학습을 할 때마다 성능이 달라진다.분명히 이전 epoch에서는 loss도 낮고 train data에 대...

[공유] [생활법령 이벤트] 2020년 11월 퀴즈 이벤트 "어느 법에서 왔니?" [내부링크]

법에 관해 찾아보다가 좋은 정부 홈페이지를 발견했다 !!

[Python3] 효율적인 반복자 itertools 사용하기 [내부링크]

효율적인 루핑을 위한 이터레이터를 만드는 함수파이썬의 공식 문서는 itertools 모듈을 위와 같이 소개한...

요즘은 밴드가 좋아 [내부링크]

최근에 알게 된 워킹 애프터 유의 Adolescence여성 멤버들로 구성된 밴드인데 세계 밴드 대회 한국 대표로...

좋은 코딩을 위한 13가지 규칙을 읽었다 [내부링크]

유지보수를 위해 응집도는 높고 결합도는 낮은 코드를 짜라는 말은 기본서에도 나와 있으나 이것저것 시스...

라이브러리, API, 프레임워크, 플랫폼이란? [내부링크]

라이브러리사전에 만들어진 코드의 집합으로 특정 목적을 위해 별도로 제공되는 함수들의 모음이다.재사용...

REST, RESTful API란? [내부링크]

RESTREST란 Representational State Transfer 의 줄임말로 애플리케이션 개발의 아키텍처 중 하...

배열(Array)과 리스트(List)의 차이 [내부링크]

생활코딩의 배열과 리스트를 정리한 글입니다.배열연관된 많은 양의 데이터를 하나의 변수에 그룹핑해...

추천 시스템이란? [내부링크]

추천 시스템이란정보필터링(IF) 기술의 일종으로 사용자(User)의 선호도(Preference) 여부를 데이터화...

취업 날개 서비스 - 건대 열린 옷장 후기 [내부링크]

예상하지 못했는데 최종 면접까지 가게 되어 부랴부랴 정장 대여를 했었다.작년에 친구가 모 회사 인턴 ...

Java SE 11 설치 (Window 10) [내부링크]

이전에 쓰던 것은 Java SE 8 이었으나, Spring 강의를 듣게 되면서 11 버전이 필요하게 되어 설치하게 ...

IntelliJ Ultimate 학생 인증 후 무료 설치하기 [내부링크]

* IntelliJ의 trial 사용 기간이 끝나서 고민하던 찰나, 학생 인증을 하면 무료로 사용할 수 있다는 것을...

NAVER Cloud AI SUMMIT [내부링크]

코로나 시대에 활용될 AI 기술은 물론, 네이버만의 AI 기술, 다양한 산업에서 AI를 적용하고 있는 ...

IntelliJ 에서 파일 이름 바꾸기 [내부링크]

단축키 : fn + shift + F6바꿀 이름으로 변경 후, Refactor 버튼을 누르면 된다.

홈페이지에 구글 웹폰트 적용하기 [내부링크]

구글에서는 여러 종류의 웹폰트를 제공하고 있기에 따로 서버에 업로드 하는 과정을 거치지 않고도 쉽게 다...

생활코딩 - 머신러닝1 정리 [내부링크]

데이터 산업이란?무수히 많은 데이터 중 필요한 데이터를 뽑아 단순한 데이터로 만들고 이 가운데 인사이트...

간단한 딥러닝 모델의 학습 과정 톺아보기 [내부링크]

우리에게 주어진 데이터는 다음과 같다. 우리는 이제 X=4일 때의 Y의 값을 예측하고 싶다.그러기...

원 핫 인코딩(One-hot Encoding) [내부링크]

컴퓨터는 문자보다는 숫자를 더 잘 처리할 수 있고, H(x) = Wx + b 인 딥러닝 수식으로는 숫자로 ...

Logistic Regression (로지스틱 회귀) [내부링크]

이진 분류(Binary Classification)메일이 스팸인지 아닌지 분류하는 문제, 시험이 합격일지 불합격일지 ...

Odds, Logit(로짓), Sigmoid의 관계 [내부링크]

ProbabilityC1과 C2를 구분하는 binary classification에서 하나의 데이터 포인트 x가 주어졌을 때, 이...

Covariance (공분산) [내부링크]

분산(Variance)이란?데이터 값들이 퍼져있는 정도이다. 분산이 크면 { 1,2,9,10} 과 같이 값 간의 차이가 크...

[알고리즘 개념] 플로이드 워셜 알고리즘 [내부링크]

플로이드 워셜 알고리즘하나의 정점에서 다른 모든 정점까지의 최단 거리를 구하는 다익스트라와 달리, 모든 지점에서 다른 지점까지의 최단 경로를 모두 구해야 하는 경우에 사용하는 알고리즘이다. 다이나믹 프로그래밍의 일종이다.양의 간선만 사용할 수 있는 다익스트라와 달리 음의 간선도 사용할 수 있다.모든 노드 간의 최단 거리를 구하는 것이므로 2차원 인접 행렬을 구성해야한다.단계마다 최단 거리를 가지는 노드를 하나씩 반복적으로 선택해서 해당 노드를 거쳐가는 경로를 확인하며 최단 거리를 갱신한다.다시 말해, 내가 선택한 노드가 K이고 A에서 B로 가는 최단 경로를 알아볼 때, A에서 B로 바로 가는 최소 비용과 A에서 K.......

우선 순위 큐로 다익스트라 알고리즘 구현하기 [내부링크]

아래 그래프가 있을 때 우선순위 큐를 이용한 다익스트라 알고리즘을 구현한 코드이다.입력5 611 2 201 3 1001 5 502 3 103 5 105 4 30관련 포스팅https://blog.naver.com/je_un/222261316046

[알고리즘 개념] Union-Find 알고리즘 [내부링크]

서로소 집합(Disjoint Set)공통 원소가 없는 '상호배타적'인 집합들로 서로 중복되지 않는 부분 집합들로 나눠진 원소들의 데이터를 처리하기 위한 자료구조이다.Union-Find (유니온 파인드)대표적인 그래프 알고리즘으로 '합집합 찾기'라는 의미이다.여러 노드가 존재할 때 두 개의 노드를 선택해서 서로 같은 그래프에 속하는지 판별한다.배열, 트리 등으로 Union-Find를 구현할 수 있으나, 번호가 큰 노드가 번호가 작은 노드를 가리키도록 트리를 이용하는 것이 가장 권장된다. 이를 통해 번호가 작은 노드가 부모가 되고, 번호가 큰 노드가 자식이 된다.union(x, y)x와 y가 속한 집합을 합치는 연산x와 y의 부모.......

[알고리즘 개념] 최소 신장 트리 - 크루스칼 알고리즘 [내부링크]

신장 트리(Spanning Tree)원래 그래프의 모든 노드를 포함하며 트리의 속성을 만족(cycle이 없음) 하는 그래프모든 노드가 서로 연결되어 있어야 한다.아래는 위와 같은 그래프에 대한 신장 트리의 예시이다. 이외에도 다양한 신장트리가 존재할 수 있다.최소 신장 트리(MST : Minimum Spanning Tree)가능한 신장 트리 중에서 간선의 가중치 합이 최소인 신장 트리최종적으로 신장 트리에 포함되는 간선의 개수가 노드의 개수 - 1 이다.이러한 최소 신장 트리를 찾는 알고리즘은 크루스칼(Kruskal's algorithm) 과 프림(Prim's algorithm)이 있다크루스칼 알고리즘그리디 알고리즘으로 분류된다.모든 간선에 대한 정렬을 수행한.......

[Python3] 파이썬 실수 표현 문제 [내부링크]

2진수 체계에서는 0.1, 0.3, 0.9 등을 제대로 표현할 수 있는 방법이 없다.따라서 아래와 같은 연산을 실행하면 정확한 값을 출력하지 못하는 것을 볼 수 있다.이러한 문제를 부동소수점 반올림 오차(Rounding Error)라고 한다.이를 해결하기 위한 방법은 아래와 같다.Math.iscloseround()Decimal()

[Python3] bisect [내부링크]

파이썬에서 이진 탐색(이분 탐색)을 쉽게 구현하게 하는 라이브러리이다.bisect_left(literable, value) : 데이터를 삽입할 가장 왼쪽 인덱스 구하기bisect_right(literable, value) : 데이터를 삽입할 가장 오른쪽 인덱스 구하기예시특정 범위에 속하는 원소의 개수 구하기

[2606] 바이러스 - 유니온 파인드 풀이 [내부링크]

https://www.acmicpc.net/problem/2606같은 집합에 있는 것을 찾는 문제로 볼 수 있기 때문에 union-find 알고리즘으로도 풀 수 있다.아래 링크는 dfs로 푼 풀이이다.https://blog.naver.com/je_un/222111891644

[알고리즘 개념] 위상 정렬(Topological Sort) [내부링크]

위상 정렬(Topological Sort)어떤 일을 하는 순서를 찾는 알고리즘으로 방향 그래프의 모든 노드를 방향성을 위배하지 않으며 순서대로 나열하는 것이다. 하나의 방향 그래프는 여러 위상 정렬이 가능하며 위상 정렬의 과정에서 선택되는 정점의 순서를 위상 순서(Topological Order)이라고 한다.진입 차수(Indegree)특정한 노드로 '들어오는' 간선의 개수동작 과정1. 진입차수가 0인 노드를 큐에 넣는다.2. 큐에서 원소를 꺼내 해당 노드에서 출발하는 간선을 그래프에서 제거한다.3. 새롭게 진입차수가 0이 된 노드를 큐에 넣는다.4. 큐가 빌 때 까지 이를 반복한다.이때 그래프에 남아 있는 정점 중에 진입 차수가 0인 정점이 없.......

Error parsing requirements for tensorflow-estimator [내부링크]

import torch를 할 때 계속 ' ImportError: numpy.core.multiarray failed to import ' 오류가 나길래 구글에 검색해보니 numpy를 지웠다가 다시 설치하라고 했다. 그래서 아래와 같이 numpy를 uninstall 했다가 다시 install을 진행했다.그러나 install numpy를 할 때는 계속 아래와 같은 오류가 발생했다.ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: (생략)그래서 그냥 해당 위치에 없다고 나오는 directory를 새로 만들고 실행 시켰더니 이번엔 아래 오류가 떴다.WARNING: Error parsing requirements for tensorflow-estimator: [Errno 13] Permission denied:tensorflow-e.......

[선형대수학] argmax, argmin [내부링크]

함수 f(x)를 최댓값으로 만들기 위한 x 값함수 f(x)를 최솟값으로 만들기 위한 x 값이들은 함수 f(x)가 무엇이냐에 따라 x 값이 달라지며 만족하는 값이 여러 개 일 수도 있다.함수 f(x)가 2x2+1 일 경우 argmin(f(x))는 1이고, argmax(f(x))는 구할 수 없다.f(x)가 tan(x)일 경우는 argmin(f(x))와 argmax(f(x)) 모두 구할 수 없다

[Python/matplotlib] imread와 imshow로 이미지 읽고 출력하기 [내부링크]

아래와 같이 이미지가 잘 출력되는 것을 확인할 수 있다

sklearn.datasets.make_blobs로 가상데이터 생성하기 [내부링크]

make_blobs등방성 가우시안 정규분포를 이용해 가상의 데이터 생성등방성은 모든 방향으로 같은 성질을 가진다는 의미이다.보통 클러스터링 용 데이터를 생성한다.argumentsn_samples : 표본 데이터의 수, default 100n_features : 독립 변수의 수, default 20centers : 생성할 클러스트의 수 혹은 중심, default 3cluster_std : 클러스터의 표준 편차, default 1.0center_box : 생성할 클러스터의 bounding box, default : (-10.0, 10.0)shuffle : 샘플을 셔플할 지 여부 default : Truerandom_state : 난수 발생 시드 default:None - 숫자 설정 시 재실행 해도 같은 값이 나옴return valuesx : [n_samples, n_features] 크기의 배열 - 독립.......

디스크 스트라이핑 [내부링크]

RAID 기술(데이터 저장소 가상화)의 일종 - RAID는 여러 개의 물리적 디스크를 하나의 묶어 하나의 논리적 디스크로 작동하게 하는 기술성능 향상을 위해 데이터를 1개 이상의 디스크에 저장하여 드라이브를 병렬로 사용할 수 있는 기술논리적으로 연결된 데이터들이 물리적으로 여러 개의 디스크에 나누어 저장됨동시에 여러 디스크에서 처리가 가능하기 때문에 하나의 디스크에서 r/w 하는 것보다 빠르게 작업이 가능하다.

암호 알고리즘(Encryption Algorithm) [내부링크]

데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 알고리즘대칭 키 암호 방식암호화와 복호화에 같은 암호키를 주는 알고리즘블록 암호 방식긴 평문 암호화하기 위해 고정 길이의 블록을 암호화하는 블록 암호 알고리즘을 반복하는 방법DES : 56bit 키 이용, 64bit 평문 블록을 64bit 암호문 블록으로 만듦. 미국표준(NIST)AES : 고급 암호화 표준. DES 대체SEED : KISA, ETRI에서 개발, TTA에서 인증한 고속 블록 단위의 128bit 대칭 키 암호화 알고리즘스트림 암호 방식긴 주기의 난수열 발생시켜 평문과 더불어 암호문 생성 RC4비대칭 키 암호 방식공개 키로 암호화 후 개인 키를 이용해 복호.......

[알고리즘 개념] 병합 정렬(Merge Sort) [내부링크]

퀵 정렬과 마찬가지로 분할 정복으로 O(N*logN)의 시간 복잡도를 가짐그러나 퀵정렬은 최악의 경우에는 O(N*N)의 시간복잡도를 가지지만, 병합 정렬은 정확히 반 씩 쪼개기 때문에 O(N*logN)을 보장한다하나의 리스트를 균등한 크기로 분할한 뒤 분할된 부분의 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법Divide리스트가 모두 한 개씩 남을 때 까지 계속 나눠준다.Conquer이미 정렬이 되어있는 상태에서 합치는 순간에 새로운 정렬을 진행하는 것.합병 과정두 개의 리스트의 인덱스 i, j에 위치한 값들을 비교해서 더 작은 값부터 순서대로 인덱스 k에 저장한다.둘 중 하나의 리.......

알고리즘 복잡도(Complexity) [내부링크]

복잡도(Complexity)알고리즘 수행시 필요한 시간 또는 공간 비용으로 알고리즘의 성능을 나타내는 척도- 시간 복잡도(Time Complexity) : 프로그램이 수행되는 시간, 즉 알고리즘을 위해 필요한 연산의 횟수- 공간 복잡도(Space Complexity) : 프로그램이 차지하는 기억 공간, 즉 알고리즘을 위해 필요한 메모리의 양f(n) = O(g(n))* f와 g는 음수 값을 갖지 않음수행 시간이 짧거나 메모리를 적게 사용하는 알고리즘, 즉 복잡도가 낮은 알고리즘이 효율적이다.보통은 메모리를 사용하며 반복되는 연산을 줄이는 방법을 많이 사용한다.알고리즘의 복잡도는 Big-O 표기법을 따른다.f(n) = O(g(n)) -> f(n)은 g(n)의 차수.......

[알고리즘 개념] 이진 탐색(Binary Search) [내부링크]

순차 탐색(Sequential Search)리스트 안의 특정 데이터를 찾기 위해 맨 앞부터 차례대로 데이터를 하나씩 확인하는 방법정렬되지 않은 리스트에서 데이터를 찾을 때 주로 사용한다최악의 경우 시간 복잡도는 O(N)이진 탐색(Binary Search)내부 데이터가 정렬되어 있는 경우에만 사용 가능하며 탐색 범위를 절반씩 좁히며 탐색한다찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는다한 번 확인할 때마다 확인하는 원소의 개수가 절반씩 줄어들기 때문에 시간 복잡도는 O(logN)구현 방법1. 시작점과 끝점을 확인하여 둘 사이의 중간점을 정하고, 중간점이 실수일 경우 소수점 이하를 버린다.-&g.......

[Python3] heapq 모듈 [내부링크]

이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조를 제공하는 모듈이다. 우선 순위 큐를 제공하는 queue.PriorityQueue를 사용하는 것과 비슷하다.(우선 순위, 아이템)의 튜플로 입력되며 순위 값이 작은 값일 수록 앞에 위치한다. 따라서 가장 작은 값은 언제나 index 0 (루트 노드)에 존재하게 된다. 만일 heapq를 최대 힙으로 사용하고 싶다면 우선 순위 값에 -를 붙여 음수로 만들어 사용한다.생성deque와 같은 경우에는 q = deque() 와 같이 큐를 생성해야 했으나, heapq는 일반적인 리스트를 min heap처럼 다룰 수 있도록 한다.위와 같이 리스트를 생성하고 heapq 모듈의 함수를 사용할 때마다 argument로 넘겨주는 것.......

영어 단어의 음절(Syllabe)과 이에 따른 비교급, 최상급 [내부링크]

음절음절은 모음 하나를 포함하는 단어의 부분을 말한다. 이때 모음은 ‘ㅏ, ㅣ, ㅜ, ㅔ, ㅗ, ··· ’ 나 ‘a, e, i ,u, o’ 글자 자체의 개수가 아니라 소리를 기준으로 한다.한국어는 모든 글자마다 모음이 하나씩 들어가고 이를 모두 같은 세기로 발음한다. 즉, 음의 길고 짧음은 있으나 높낮이가 없는 음절 언어로 글자의 수와 음절의 수가 일치하는 것이다.그러나 영어는 두 음절을 연달아 발음할 때 한 음절이 다른 음절에 비해 길고 크게 발음되는 강세 언어이다. 이는 단어가 가진 모음의 개수가 음절의 개수와 일치하지 않는다는 뜻이다.firefire는 파/이/어로 3음절일까? 아니면 i와 e가 두 개 이므로 2음절일까?정답은 둘다 아.......

과학기술용 표준 라이브러리 [내부링크]

Numpy동일 또는 혼합 데이터 유형의 다차원 배열 객체 지원, 배열 객체에 최적화된 함수와 메서드 제공SciPy과학기술이나 금융 분야에서 필수적인 중요 표준 기능을 구현한 함수와 서브 라이브러리 모음.큐빅 스플라인 보간법, 수치적분 제공matplotlib파이썬용 플롯, 시각화 라이브러리. 2차원 및 3차원 시각화 기능 제공PyTablesHDF5 자료 저장 라이브러리를 파이썬에서 사용할 수 있도록 한 래퍼 라이브러리. 계층형 데이터베이스/파일 형식에 기반한 최적화된 디스크 입출력 기능 수행 가능pandasNumpy 기반. 시계열 데이터와 테이블 데이터를 관리하고 해석할 수 있는 다양한 클래스 제공. 플롯팅과 데이터 저장 추출을 위해 matplo.......

[알고리즘 개념] 선택 정렬, 버블 정렬, 삽입 정렬 [내부링크]

선택 정렬(Selection Sort)주어진 리스트에서 최소값을 찾고, 맨 앞에 위치한 원소와 자리를 바꾼다. 맨 앞에 위치한 원소를 제외한 나머지 리스트에서 해당 작업을 반복한다. - 이중 for 문. index와 최소값을 저장n * (n+1) / 2 -> O(n*n) 수가 많아질 수록 연산 횟수가 기하급수적으로 증가 -> 비효율적버블 정렬(Bubble Sort)리스트에서 서로 인접한 두 원소를 비교하여 정렬하는 방법이다. 한 번 정렬하고 나면 가장 큰 값이 맨 뒤로 이동한다. - 이중 for문n * (n+1) / 2 -> O(n*n) * 실제 수행시간은 선택 정렬보다 훨씬 느림 => 계속해서 자리를 바꾸는 연산 (매번 교체)삽입 정렬(Insertion Sort)정렬 범위를 한 칸.......

[알고리즘 개념] 퀵 정렬(Quick Sort) [내부링크]

퀵 정렬(Quick Sort)분할 정복(Divide and Conquer)과 재귀를 사용한다.배열을 반복적으로 분할해서 계산하기 때문에 평균적으로 데이터의 개수 * logN, 즉 O(N*logN)의 시간 복잡도를 보인다.그러나 이미 정렬된 리스트를 다시 정렬하는 경우는 최악의 경우로 O(N*N)의 시간 복잡도가 나올 수 있다.임의의 기준 값, 즉 피봇(Pivot)을 기준으로 Pivot보다 큰 값의 그룹과 Pivot보다 작은 값의 그룹으로 나눈다다양한 방법으로 pivot을 정할 수 있지만, 첫 번째 값으로 하는 것이 편하다.만약 7 1 4 6 9 8 5 2 3 이라는 리스트가 있을 때, pivot은 7이다.7을 기준으로 왼쪽에서부터는 7보다 큰 값을 찾고 오른쪽에서부터는 7보다 작은 값을 찾는.......

Argument와 Parameter [내부링크]

Argument vs ParameterArgument는 함수 호출시 전달되는 값Parameter은 그 전달된 값을 함수 내부에서 사용할 수 있도록 하는 변수위의 코드에서 add(1, 2)의 1과 2는 argument 이고,add(a,b)의 a,b는 parameter이다.parameter의 전달방식은 passing by value와 passing by reference 두 가지가 존재한다.Passing by value(값 전달)기본적인 값 전달 방식으로 전달되는 값만 복사되어 저장되는 것으로 원본의 값에 아무런 영향을 끼치지 않는다. Passing by reference(참조 전달)전달 받은 값만 복사하는 것이 아닌 원본 데이터에 대한 참조 변수를 parameter에 전달한다.함수 안에서 데이터의 값을 변경하면 함수 밖의 원본 데이터도 같.......

절차형 SQL - 프로시저(Procedure) [내부링크]

절차형 SQL이란프로그래밍 언어와 같이 연속적인 실행이나 조건에 따른 분기, 반복 등의 제어가 가능한 SQLBEGIN ~ END 형식으로 작성Procedure, User Defined Function, Trigger 등이 있음프로시저(Procedure)절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어프로시저 호출을 통해 실행, SQL 작업을 포함하는 데이터 조작어(DML:Data Manipulate Language) 수행* 트랜잭션 : 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산 * 데이터 조작어 : SELECT, DELETE, INSERT, UPDATE - 입력, 삭제, 수정, 조회프로시저 구성* TRUNCATE : 테이.......

축 애드포스트 수익 드디어 만원 달성 하 [내부링크]

9월 부터 애드포스트 달아 놓은 것 같은데 약.. 7개월 정도만에 만 원을 모았다내 블로그에 들어온 사람들이 얼마나 많느냐 보다 광고를 얼마나 클릭하느냐에 따라 수익이 결정나는 것 같다만 원 모으면 치킨 사먹으려고 했는데 다음 달에 네이버 포인트로 들어온다고 한다..어제 확인해볼 걸.. 매우 후회 중..월급으로 치면 1400원 정도네..네이버 블로그로 밥 벌어 먹고 살기는 전혀 안 될 것 같다 ㅋㅋㅋ

[Pytorch] Tensor, unsqueeze, squeeze, view [내부링크]

Tensor수학의 벡터나 행렬을 일반화한 개념랭크(Rank, 차원) 0 - 스칼라 / 랭크 1 - 벡터 / 랭크 2 - 2차원 행렬 / 랭크 3 - 3차원 행렬shape, size(), ndimension() 함수로 차원의 크기와 텐서의 랭크를 확인할 수 있다텐서의 랭크(차원) 변경아래 함수들은 원소 수를 그대로 유지하며 차원과 모양만 조절한다.torch.unsqueeze(input, dim)특정 위치에 1인 차원을 추가해 텐서의 차원을 늘리는 함수실행 결과는 다음과 같다torch.squeeze(input, dim=None, *, out=None)dim 을 지정해주지 않으면 텐서의 모든 1인 차원을 제거한다위와 같이 두 가지 방법으로 사용할 수 있다. 아래는 실행 결과이다. unsqueeze로 추가했던 1인 차.......

[Pytorch] 행렬곱 [내부링크]

행렬텐서에서 행렬은 랭크(차원) 2 텐서와 같다만약 행렬 A와 행렬 B가 있다면 행렬곱을 하기 위해서는 행렬 A의 열 수와 B의 행 수가 같아야 한다.따라서 A가 2*3 행렬이고 B가 3*4 행렬이라면 연산이 가능하지만 A가 3*4행렬이고 B가 2*5 행렬이라면 연산이 불가능하다.행렬곱의 연산 결과는 행렬 A의 행 수와 행렬 B의 열 수와 같다.행렬곱을 진행하기 전 아래와 같이 텐서들을 선언한다.a는 torch.randn()을 이용해 무작위 숫자로 이루어진 텐서를 생성하였고 b는 직접 실수형 원소를 넣어 생성하였다.행렬곱torch.mm(input, mat2, *, out=None)input은 행렬곱을 수행할 첫 번째 텐서, mat2는 행렬곱을 수행할 두 번째 텐서를 뜻한.......

[Pytorch] Autograd [내부링크]

위의 동영상과 사이트를 보며 정리한 포스팅 입니다.Autograd텐서의 모든 연산에 대해 자동 미분을 제공하는 패키지실행 시점에 정의(define-by-run)되는 프레임 워크로 코드가 어떻게 실행되느냐에 따라 역전파가 정의되며 반복마다 역전파(backprop)가 달라질 수 있다.Attribute of Tensor텐서에는 여러가지 속성을 가지고 있는데 아래는 그 중 주요 속성이다.data : 텐서 데이터 저장 ㅡ hold data of the tensor grad : gradient value 저장 ㅡ hold gradient values once it's caculatedgrad_fn : backward graph의 노드 가리킴 ㅡ point to a node in the backward graphis_leaf : tensor가 leaf인지 판단 ㅡ Indicate whether th.......

[Python] 파이참(Pycharm) 이용해서 모듈 업데이트 하기 [내부링크]

파이참을 이용해 파이썬 모듈의 현재 버전과 최신 버전을 알아보고 업데이트 하는 방법에 대해 알아보자.1. file - settings 를 클릭한다.2. settings 화면에서 Python Interpreter 을 선택한다.3. 위와 같이 현재 version과 최신 version을 확인할 수 있다.4. 업데이트가 필요한 모듈을 선택하고, 동그라미로 표시한 update 버튼을 눌러준다. 한 번에 업데이트를 진행하면 랙이 걸릴 수 있으니 유의해야 한다.

[알고리즘 개념] BFS(너비 우선 탐색) [내부링크]

BFS는 Breadth First Search의 약자로 DFS와 비슷하면서 다른 특징을 가지고 있다.DFS처럼 한 방향으로 갈 수 있는 곳 까지 탐색하지 않고, 인접한 정점들을 모두 차례로 방문한 후, 방문한 정점을 다시 시작점으로 하여 다시 인접한 정점을 차례로 방문한다. 인접한 정점을 차례로 모두 탐색해야 하므로, 선입후출 방식인 스택대신, 선입선출 형태의 큐를 활용하는 것이다. 다음과 같은 그래프가 있을 때, BFS를 이용한다면 A-B-C-D-E-F-G-H-I 순으로 정점을 방문한다.아래는 BFS의 로직을 나타낸다.위 로직을 바탕으로 BFS 실행 과정을 따라가보자.1. 초기화visited 리스트를 초기화하고 방문할 정점을 담을 queue를 생성한뒤 시작점을 q.......

[SWEA] 미로의 거리 [내부링크]

NXN 크기의 미로에서 출발지와 목적지가 주어지고, 최소 몇 개의 칸을 지나야 출발지에서 도착지에 다다를 수 있는지 알아보는 프로그램을 코딩하는 문제이다.입력은 0 : 통로, 1:벽, 2:출발, 3:도착 이다.distance 리스트를 만들어서 따로 거리 정보를 저장한다.

편미분(Partial Derivative) [내부링크]

여러 변수들 중 하나에 대해서만 미분하고, 나머지는 상수 취급하는 미분법이다. z = f(x,y)에 대해서 z를 x에 대해서 편미분 하게 되면 아래와 같이 표현된다.예시)f(x,y)를 x에 대해서 편미분f(x, y)를 y에 대해서 편미분f(x, y)를 x, y로 순차 미분 (교환 법칙이 성립하기 때문에 y, x 순차 미분과 같다)

[자료구조] 트리(Tree) [내부링크]

계층적인 비선형*이며 비순환적인 구조를 가지는 자료구조로 파일시스템, 데이터베이스, 프로그램의 구문 등에서 자료나 함수 등 계층적 관계를 표현하고 정렬하는 데에 사용된다. 상위 원소에서 하위 원소로 내려가면서 확장되는 나무 모양의 구조* 비선형 : 직선이 아닌 곡선의 형태로 나타나서 결과를 예측할 수 없는 경우를 말한다. 해가 2개인 2차 방정식이 이에 속한다.트리(Tree: T)루트(Root)라는 특별한 노드(Node)를 갖고 그래프를 구성하는 꼭짓점 u, v간에 u에서 v로 가는 단순 경로가 존재하는 비순환의 연결 그래프원소들 간에 1:n 관계를 가지는 자료구조로 한 개 이상의 노드로 이루어진 유한 집합이다.* 노드의 개수를 v,.......

[자료구조] 이진 트리(Binary Tree) [내부링크]

이진 트리(Binary Tree)트리인 그래프 T의 차수가 최대 2인 트리, 즉 2항 트리(2-ary Tree)* 이진 트리는 서브 트리의 위치에도 의미가 있다.위의 두 트리는 노드의 수, 노드의 이름, 모서리의 수, 트리의 높이가 같지만 자식 노드의 위치가 다르기 때문에 다른 트리로 취급한다.완전 이진 트리(Complete Binary Tree)트리의 높이가 h일 때 레벨 0부터 h-1까지의 모든 부모 노드의 차수가 2차이고 레벨 h는 왼쪽부터 노드가 채워져 있는 트리위 트리는 3레벨이며 2레벨 까지의 모든 부모 노드 차수가 2이다. 또한, 레벨 3에서 왼쪽부터 노드가 채워져 있으므로 완전 이진 트리에 속한다.위 트리에서 노드 C는 자식 노드 두 개가 채워지지.......

[자료구조] 트리의 순회(Traversal) [내부링크]

순회(Traversal)모든 노드의 데이터를 처리할 수 있도록 한 번씩 방문하는 방법이며 루트 노드를 언제 방문하냐에 따라 전위순회, 중위순회, 후위순회로 구분한다.순회의 규칙1. 항상 루트 노드에서 시작한다2. 노드의 데이터를 읽기 전에 노드가 존재하는지 먼저 탐색한다.3. 형제 노드 중 왼쪽 노드를 항상 먼저 탐색한다.전위순회(Preorder Traversal)부모 노드 - 왼쪽 자식 노드 - 오른쪽 자식 노드 순으로 탐색하는 순회 방식아래 트리를 전위 순회로 순환한다면 다음과 같다.1. 루트 노드인 노드 1을 방문하여 데이터 A를 읽는다. (A)2 노드 1의 왼쪽 자식 노드가 있는지 탐색한다.3. 노드 1의 왼쪽 자식 노드인 노드 2가 있으므로 방.......

[자료구조] 이진 탐색 트리(Binary Search Tree) [내부링크]

이진 탐색 트리(Binary Search Tree)노드가 가지는 데이터의 내용에 대한 기준에 따라 노드의 위치를 탐색할 수 있는 트리- 트리에서 탐색되는 모든 원소는 서로 다른 유일키를 갖는다.- 왼쪽 서브 트리에 있는 원소들의 키는 그 루트의 키보다 작거나 앞선 순서를 갖는다.- 오른쪽 서브 트리에 있는 원소들의 키는 그 루트의 키보다 크거나 뒤의 순서를 갖는다.위는 이진 탐색 트리의 예로 15를 기준으로 왼쪽은 15보다 작은 값들로 구성된 서브트리이고 오른쪽은 15보다 큰 값들로 구성된 서브트리이다. 15는 이진 트리에 존재하는 탐색 가능한 모든 원소들의 유일한 키가 된다.만약 이 트리에서 19를 탐색한다면, 다음과 같은 과정을 거.......

백본망 라우터 스위치 게이트웨이 방화벽 [내부링크]

백본망(Backbone Network)다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망라우터(Router)3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비스위치(Switch)2계층 장비로서, 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소 기반으로 빠르게 전달하는 네트워크 장비게이트웨이(Gateway)컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 네트워크 장비방화벽(Firewall)외부.......

[프로그래머스] 단속카메라 [내부링크]

문제 설명고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다.고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요.제한사항- 차량의 대수는 1대 이상 10,000대 이하입니다.- routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 점, routes[i][1]에는 i번째 차량이 고속도로에서 나간 지점이 적혀 있습니다.- 차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메.......

[자료구조] 그래프(Graph)란 [내부링크]

그래프(Graph: G=(V,E))공집합이 아닌 꼭짓점(Node)의 집합 V와 서로 다른 꼭짓점의 쌍(vi,vj)을 연결하는 모서리(Edge)의 집합 E로 구성된 구조이다.G = (V, E)V = {v1, v2, ..., vn}E = {e1, e2, ..., en} = {(vi, vj), ...}* 모서리에 이름이 있을 경우에는 이름을 원소로 표기해도 되고, 꼭짓점의 순서쌍으로 표기해도 된다.* 모서리에 방향성이 있을 경우, 모서리의 집합 E에서 (vi,vj), (vj,vi)는 다른 모서리를 의미하기 때문에 구분하여 쓴다. 하지만 방향성이 없을 경우 같은 모서리를 의미하기 때문에 둘 중 하나만 쓴다.인접(Adjacent), 근접(Indicent)그래프 G=(V, E)에서 꼭짓점 u와 v를 연결.......

[자료구조] 그래프의 종류 [내부링크]

부분 그래프(Subgraph)그래프 G=(V, E)가 있을 때, V' ⊆ V 이고 E' ⊆ E 인 그래프 G' = (V', E')* 어떤 그래프 G에 포함되는 일부 꼭짓점과 일부 모서리로만 그린 그래프.부분신장 그래프(Spanning Graph)그래프 G=(V, E)가 있을 때, V'=V이고 E' ⊆ E 인 그래프 G' = (V', E')* 어떤 그래프 G의 모든 꼭짓점을 포함하지만 모서리는 일부만 포함하는 그래프동형 그래프(Isomorphic Graph)그래프 G=(V, E)와 그래프 G' = (V', E')에 대한 함수 f:V→V'가 u, v ∈ V에 대해 (u, v) ∈ E이면, (f(u), f(v)) ∈ E'가 성립.......

[자료구조] 그래프의 표현 [내부링크]

인접행렬(Adjacency Matrix: AG)그래프 G=(V, E)에서 |V|=n 일 때, n x n 의 행렬 AG = [aij]로 나타내는 방법즉 두 꼭짓점에 근접하는 모서리가 존재하면 원소의 값이 1, 존재하지 않으면 0인 행렬이다.하나의 꼭짓점 집합에 대한 행렬이므로 항상 정사각행렬이다.무방향 그래프는 인접행렬에서 대각원소를 기준으로 마주보는 원소는 같은 값을 가지지만, 방향 그래프에서는 대각 원소를 기준으로 마주보는 원소의 값이 다르다.인접리스트(Adjacency List)그래프 G=(V, E)를 구성하는 각 꼭짓점에 인접하는 꼭짓점들을 연결리스트로 표현한 것* 인접리스트의 경우 두 꼭짓점에 근접하는 모서리의 수가 둘 이상인 다중 그.......

[자료구조] 오일러와 해밀턴 [내부링크]

* 연결그래프의 길과 경로와 관련되어 있음 * 하나의 꼭짓점에서 다른 꼭짓점으로 가는 다양한 길이 존재할 수 있으나 같은 모서리를 반복적으로 지나지 않는 길은 경로이다순환(Cycle) 또는 회로(Circuit)시작하는 꼭짓점과 끝나는 꼭짓점이 같은 경로길이(Length)경로 또는 순환을 구성하는 변의 수오일러 경로 (Eulerian Path)그래프 G=(V, E)의 모든 모서리를 꼭 한 번씩만 지나는 경로* 꼭짓점에 상관없이 모든 변을 반드시 한 번씩 지나야 한다.* 연결 그래프 G=(V, E)의 꼭짓점 중 차수가 홀수인 꼭짓점의 수가 0 또는 2개이면, 오일러 경로를 갖기 위한 필요충분조건이다. -> 꼭짓점 A에서 시작해 꼭짓점 B에서.......

[오늘의 영어] way too [내부링크]

I'm way too young to lie here forever난 여기 평생 누워만 있기엔 너무 젊고I'm way too old to try, so whatever뭔갈 시도하기엔 너무 나이 들었어, 그게 뭐?Come hang, let's go out with a BANG!같이 놀자, bang 하게 즐기자!요즘 자주 듣는 노래 중 하나인 AJR의 BANG!의 가사 중 하나이다.I'm way too young to lie를 보며 의문에 빠질 수 있다.way는 보통 '길', '방법' 등으로 알고 있었는데 갑자기 나는 길이야? 이상하다.그렇다면 이때의 way는 무슨 뜻일까?way tooinformal하게 too를 강조하는 뜻으로 쓰인다.official 상황에서 쓰이지는 않지만 꽤 자주 쓰이는 표현이니 알아두면 좋을.......

[알고리즘 개념] 다익스트라 알고리즘(Dijkstra Algorithm) [내부링크]

최단경로 문제(Shortest Path Problem)|E| > 0 인 그래프 G=(V, E)에서 꼭짓점 v1, v2 ∈ V 간의 가장 짧은 거리의 경로를 찾는 문제이다.지도의 경로를 찾는 것은 물론, 네트워크에서 어떤 호스트 M에서 다른 호스트 N으로의 연결 경로를 찾는 경우가 이에 속한다. 가장 비용이 적게 들고 빠르게 이동할 수 있는 경로를 찾는 것이다.가중치가 부여되지 않는 그래프일 경우는 경로의 길이로 최단 경로를 찾을 수 있으나, 가중치가 부여되어 있을 경우는 가중치를 계산하여 최단 경로를 찾을 수 있다. 비용이라면 합이 적은 경로가, 효과라면 합이 큰 경로가 최단 경로일 것이다.다익스트라 알고리즘(Dijkstra Algorithm)다이나믹.......

[자료구조] Queue(큐) [내부링크]

삽입, 삭제의 위치가 제한적인 자료구조로 선입후출인 스택(Stack)과 다르게 선입선출(FIFO)이다.즉, 큐의 앞은 삭제만 큐의 뒤는 삽입만 이루어진다. 큐의 맨 앞을 Front(머리) 라고 부르며 저장된 원소 중 첫 번째 원소를 뜻한다. 또한 맨 끝을 Rear(꼬리)라고 부르며 저장된 원소 중 마지막 원소를 뜻한다. 큐를 생성하면 front와 rear의 기본값은 -1이다. front와 rear 값이 같으면 Queue가 비어있다고 볼 수 있다.기본적으로 큐의 뒤쪽(rear)에 원소를 삽입(enQueue)하는 연산과 큐의 앞쪽(front)에서 원소를 삭제(deQueue) 연산이 있다. 삽입 연산 시에는 rear값이 +1이 되고, 삭제 연산 시에는 front값이 +1 된다.이외에 공백 상태.......

윈도우 10 캡처 단축키 [내부링크]

window + shift + s : 선택한 영역(사각형/자유형) / 창 / 전체화면 캡처 + 클립보드에 저장window + prtsc : 전체화면캡처 + 파일로 자동 저장alt + prtsc : 현재창 캡처 + 클립보드에 저장

[프로그래머스] 체육복 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42862Greedy 문제 세트를 다시 풀어보기로 했다.문제 설명점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배.......

[프로그래머스] 조이스틱 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42860?language=python3#문제 설명조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다.ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA조이스틱을 각 방향으로 움직이면 아래와 같습니다. - 다음 알파벳 - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 JAZ를 만들 수 있습니다.- 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다.- 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문.......

[프로그래머스] 큰 수 만들기 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42883문제 설명어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요.제한 조건-number는 1자리 이상, 1,000,000자리 이하인 숫자입니다.-k는 1 이상 number의 자릿수 미만인 자연수입니다.입출.......

[프로그래머스] 구명보트 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42885문제 설명무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람.......

알고리즘 시간초과의 해답, sys.stdin.readline() 과 PyPy [내부링크]

틀림없이 내가 푼 알고리즘이 정답이 확실하다. 그러나 정답 확인을 해보면 시간 초과가 난다. 대체 뭐가 문제일까?그래서 남이 푼 알고리즘 문제의 파이썬 코드를 보다보면 input() 대신 sys.stdin.readline()을 이용하여 입력을 받는 경우를 볼 수 있다.로직은 같고 입출력 방법만 다른데 정답이라니! 심지어는 PyPy로 제출하면 정답이라고 한다.그렇다면 이 sys.stdin.readline()과 PyPy는 대체 무엇일까?1. sys 모듈파이썬은 인터프리터 언어이다.이는 프로그래머가 작성한 원시코드를 기계어로 컴파일하는 과정 없이 한 줄 한 줄 해석하여 바로 명령어를 실행하는 언어이다.이 덕분에 cmd 창에서 python을 실행해서 바로바로 결과를 볼 수.......

[백준] 1260. DFS와 BFS [내부링크]

https://www.acmicpc.net/problem/1260처음에 DFS를 재귀가 아닌 stack으로 구현해서 실패했다ㅎㅎ;

[SWEA] 1953. 탈주범 검거 [내부링크]

BFS! 인데 연결 상태를 확인하는 과정을 제대로 생각해야 한다.밑으로 갈 수 있어서 갔더니 터널끼리 연결이 안 된 경우인,+ㅡ이런 모양이 있을 수 있기 때문이다.그리고 터널을 표현할 때 나는 상/하/좌/우로 갈 수 있으면 1: ((1, 0), (0, 1), (-1, 0), (0, -1)) 로 표현했는데, 다르게 표현하는 방법도 있었다.(근데 그게 더 귀찮아 보임)그래도 이제 문제보고 어 이거 BFS? 이건 DFS? 이렇게 생각할 수 있게 되었다.

키패드가 빠져씀다 -_-;; [내부링크]

어이없다 갑자기 노트북에서 이응이 탈출했다.나는 이제 이응과 d를 칠 수 없는 몸이 되었다.사실 칠 수 있긴한데 불편하게 치는 몸이 되었다.인터넷에 검색했다가 나처럼 이응이 빠진 사람이 있길래 함께 기념샷을 찍어보았다.노트북 키패드 빠짐은 죄다 엘지그램 뿐이다...돈 벌어서 맥북으로 갈아타는 수밖에 없겠다.암튼 황당해서 블로그에 적어봄

[Python3] numpy의 random 을 통한 난수 발생 [내부링크]

난수 발생 주요 메소드Seed란?RandomState를 초기화할 때 사용한다.Random 알고리즘은 시작 숫자를 정해주면 정해진 알고리즘에 따라 난수처럼 보이는 수열을 생성한다. 이러한 시작 숫자를 seed라고 하며, seed값이 같으면 같은 난수들이 생성된다. (예측이 가능해짐)seed의 인수로는 0과 같거나 큰 정수를 넣어준다.1) 무작위로 난수를 생성할 경우 다른 난수 값들이 생성2) np.random.seed(0)으로 시작 숫자를 정해줄 경우 같은 난수 값들이 생성난수 생성 메소드np.random.rand()[0,1] 구간에서 난수 생성, call 안에는 shape가 들어가며, 이 형태로 matrix가 생성된다.np.random.randint(low, high=None, size=None)high를.......

[C++] STL 시퀀스 컨테이너 - vector [내부링크]

1. 표준 템플릿 라이브러리(STL)vector는 C++ 표준 템플릿 라이브러리 (STL - Standard Template Library)의 일종이다.STL은 컨테이너, 반복자, 알고리즘, 함수자라고 불리는 네 가지의 구성 요소를 제공한다.int, string 같은 데이터 타입 뿐만 아니라 사용자가 지정한 임의의 데이터 타입도 이러한 STL의 기능을 쓸 수 있다.vector는 이 중, 임의 타입의 객체를 보관할 수 있는 컨테이너(container) 라이브러리에 속한다.2. 컨테이너객체를 순차적으로 보관하는 시퀀스 컨테이너(Sequence container)키를 바탕으로 대응되는 값을 찾는 연관 컨테이너(Associative container)시퀀스 컨테이너에는 vector, list, deque가 있고 연관 컨테이너.......

[SWEA] 5658. 보물상자 비밀번호 [내부링크]

k에 -1을 해줘야 되는데 그걸 생각 못 해서 헤맸다. 전체 로직은 문제보자마자 떠올렸는데..제출하고 나니까 for i in range(n) 이아니라 for i range(l)로 해도 충분하다는 게 떠올랐다...

[SWEA] 종이 붙이기 [내부링크]

전형적인 DP.. 인데 ㅜㅜ DP 문제를 너무 오랜만에 풀어서 그런지 바로 점화식이 안 떠올랐다.. 경우의 수 그려보면서 점화식 찾는다고 다 그려보려다가 깨달았다.dp[n-1] + ldp[n-2] + =dp[n-2] + ㅁ이렇게 생각해서 점화식 짜면 된다는 것을.DP는 풀면 풀 수록 내가 바보가 되는 느낌이다.여담이지만 처음에 문제를 잘못 이해해서 테이프를 몇 개 붙여야 되냐고 묻는 줄 알았다.ㅋㅋㅋㅋ

[Python3] TabError: inconsistent use of tabs and spaces in indentation [내부링크]

단락 구분을 위해 들여쓰기를 할 때 tab과 space를 혼용해서 사용하면 뜨는 오류이다.육안으로는 확인하기 어려워서 하나하나 바꿔줘야 하는 열받고 귀찮은 오류이다.에디터마다 일괄 수정하는 기능이 있으나 swea 나 백준같은 사이트에서 제공하는 플랫폼에서 문제 풀다 만나면 화가난다..들여쓰기를 제대로 바꿔주면 잘 실행된다.

[SWEA] 괄호 검사 [내부링크]

전형적인 스택 문제! 예전에 사칙연산 계산기를 만들었던 적이 있어서 쉽게 풀었다.근데 또 문제 조건을 제대로 안 읽어서 ..(ㅋㅋ) 살짝 헤맸다.제발.. 다 읽고 생각하며 풀기읽자마자 바로 푸는 습관을 고쳐야 되는데 몸에 너무 배서 큰일이다.

[SWEA] 그래프 경로 [내부링크]

스택을 이용한 DFS로 풀었다.g = [[] for _ in range(v+1)]요 부분에서 [[]*n] 이렇게 선언했었는데 이건 []안에 값이 있을 때만 가능한 방법이었다.단방향 그래프임을 유의해야하는 문제이다. 리스트 함축을 이용해야한다. while tovisit: 이라고 해야하는데 true라고 했다가 큰일날 뻔 했다..+ swea 사이트 내에서 tovisit을 쓸때마다 새퍄냣 으로 바뀌어져 나온다. 자동 한글 변환 짜증나..

[SWEA] 반복문자 지우기 [내부링크]

너무 쉬운데...? 난이도 d1해도 됐을 거 같다.

[Python3] eval()과 exec() [내부링크]

eval()은 문자열로 된 단일 표현식의 값을 반환한다.x = 1 과 같은 명령문은 입력할 수 없다.exec()은 동적으로 생성된 명령문을 실행한다.단일 명령문을 비롯해 긴 명령문도 실행 가능하다.그러나 eval()처럼 표현식의 값을 반환하지는 않는다.

[백준] 2606. 바이러스 [내부링크]

기초 dfs 문제. 개념이 자꾸 헷갈려서 기초문제부터 풀어보며 이해하기로 결심했다.

[백준] 2667. 단지번호붙이기 (DFS) [내부링크]

무려 재작년에 c++로 풀었던 문제를 python으로 다시 풀었다.visited 함수를 만드는 대신 0으로 바꿔주었다.# 로직1. 전체맵 완전탐색2. 집이 있으면 단지 수 증가3. stack에 해당 위치의 index 추가한 뒤 값을 0으로 변경 (visited 를 따로 만드는 대신 한 번 확인한 곳은 다시 확인하지 않도록 하기 위해)4. while문을 돌며 상하좌우를 탐색하며 인접한 위치에 집이 있다면 index를 stack에 추가하고 해당 값을 0 으로 변경, count 증가 (집 개수 세기)

[백준] 2589. 보물섬 [내부링크]

python3로 하면 시간초과가 났는데 PyPy3로 돌리면 맞다... 이게 무슨 ㅠ.. 둘이 뭐가 다른지 잘 모르겠다.

[Python3] collections 모듈의 deque [내부링크]

Deque란deque(데크/덱)은 double-ended queue의 줄임말로, 양방향으로 자료를 처리할 수 있는 queue형 자료 구조이다.기본 queue는 선입선출의 구조(왼쪽으로 삭제, 오른쪽으로 삽입)를 띄고 있으나 deque는 양쪽에서 삽입과 삭제가 가능하다.Python에서의 사용또는등으로 사용할 수 있다.list와 비슷하게 append(), pop() 메소드가 사용가능하다.대신 list에서 pop() 연산을 이용해 queue나 stack을 구현하는 것보다 collections.deque를 사용하면 훨씬 빠르게 실행할 수 있다.bfs/dfs를 구현 시 유용하게 쓸 수 있다.자주 쓰이는 메소드는 다음과 같다append(x) - 오른쪽에 원소 추가appendleft(x) - 왼쪽에 원소 추가pop() - 오른쪽 원.......

Window10 시작 메뉴 Bing(웹) 검색 비활성화 하기 [내부링크]

시작 메뉴 옆의 검색 버튼을 이용해 검색하다보면 다음과 같이 웹 검색이 뜨거나 가끔은 이상한 광고가 뜰 때도 있다.대부분 쓰지 않는 마이크로 엣지 브라우저가 열리기 때문에.. 가끔 묘하게 신경에 거슬리기도 한다.이러한 상황은 레지스트리를 추가해주면 간단히 해결된다.regedit 을 검색해서 레지스트리 편집기 열기컴퓨터\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search경로로 이동새로 만들기 > DWORD(32비트) 값 선택 해서 새로운 레지스트리를 BingSearchEnabled 라는 이름으로 만들어주고 값 데이터를 0으로 해준다.CortanaConsent 도 0으로 바꿔주고 닫아주면 더이상 웹 검색이 뜨지 않는다.굿굿.......

[데이터베이스] 인덱스와 B-tree [내부링크]

인덱스검색 연산의 최적화를 위해 투플의 키 값에 대한 물리적 위치를 기록해둔 자료구조일반적으로 B-tree 구조로 되어 있으며 전체 데이터의 검색(Full-scan) 없이 필요한 정보에 대해 신속한 조회가 가능하다.인덱스의 특징테이블에서 한 개 이상의 속성을 이용하여 생성한다.빠른 검색과 함께 효율적인 레코드 접근이 가능하다.순서대로 정렬된 속성과 데이터의 위치만 보유하므로 테이블보다 작은 공간을 차지한다.저장된 값들은 테이블의 부분집합이 된다.일반적으로 B-tree 형태의 구조를 가진다.데이터의 수정, 삭제 등의 변경이 발생하면 인덱스의 재구성이 필요하다.인덱스의 생성 시 고려사항WHERE 절이나 조인에 자주 사용되는 속.......

[PL/SQL] %TYPE 데이터형 변수 [내부링크]

%TYPE 은 PL/SQL 작성 시 변수 선언을 할 때 사용한다.기술한 데이터베이스 테이블의 컬럼 데이터 타입과 같은 데이터 타입으로 설정할 경우 사용한다.컬럼 데이터타입을 모를 경우 유용하게 사용할 수 있으며, 해당 컬럼의 데이터 타입이 변경되어도 다시 PL/SQL을 고칠 필요가 없다.사용예시CREATE OR REPLACE PROCEDURE TEST(p_empno IN emp.empno%TYPE)ISv_empno emp.empno%TYPEv_ename emp.emname%TYPEBEGINDBMS_OUTPUT.ENABLE;SELECT EMPNO, ENAMEINTO v_empno, v_enameFROM EMPWHERE EMPNO = p_empno;DBMS_OUTPUT.PUT_LINE(‘직원번호:’||v_empno);DBMS_OUTPUT.PUT_LINE(‘직원이름:’||v_ename);END;

[SWEA] 2071. 평균값 구하기 [내부링크]

요새 또 너무 알고리즘을 안 한거 같아서 쉬운 문제부터 감을 잡기 위해 풀었다.10개의 정수의 평균값을 구하는 간단한 문제이나.. 총 세 번의 시도 끝에 문제를 맞췄다.소수점 첫째 자리에서 반올림한 정수를 출력한다.이 조건을 확인하지 못해서 ceil과 // 를 사용해서 두번이나 틀렸다.쉬운 문제라도 자만하지 않고 문제 제대로 정독하기!

[Python3] 공백 리스트 생성, 시퀀스 연산자, 리스트 함축 [내부링크]

공백 리스트 생성알고리즘 문제를 풀다보면 리스트를 사용하기 전에 공백 리스트를 미리 생성해두어야 하는 경우가 있다.arr = [] 로 대괄호로 간단하게 생성하는 법이 대표적이나 arr = list() 와 같이 list 클래스의 생성자를 이용하여 리스트를 생성하는 방법도 있다.리스트 시퀀스 연산자또한 리스트는 시퀀스(Sequence) 자료형이기 때문에 시퀀스 자료형에 사용할 수 있는 함수와 연산자를 이용한 계산이 가능하다.+ 는 시퀀스 연결로 아래와 같이 사용할 수 있다.*는 시퀀스 반복으로 아래와 같이 사용할 수 있다.in 과 not in 으로 소속 여부를 판단할 수도 있다.리스트 함축10보다 작은 짝수를 가지는 리스트를 생성할 때.......

[알고리즘 개념] 브루트 포스(Brute Force) [내부링크]

브루트 포스완전 검색(exhaustive search) 또는 generate-and-test 기법이라고도 불리며 문제를 해결하기 위한 모든 경우의 수를 나열하고 확인하는 기법이다. 일반적으로 경우의 수가 상대적으로 작을 때 유용하다. 수행속도는 느리지만 정확도는 100%라고 볼 수 있다.Baby-gin 게임0~9 사이의 숫자카드가 있고 게이머는 이 중 임의의 카드 6장을 뽑는다.3장의 카드가 연속적인 번호를 갖는 경우를 run, 3장의 카드가 동일한 번호를 갖는 경우를 triplete이라고 한다. (단, 901은 run이 아니다.)모든 카드가 run이거나 triplete 일 경우를 Baby Gin이라고 하며 게이머가 뽑은 카드가 Baby Gin일 경우 게임에서 승리하게 된다.1. 667767은 두.......

[알고리즘 개념] Greedy Algorithm [내부링크]

Greedy Algorithm그리디 알고리즘, 탐욕 알고리즘은 최적해를 구하는데 사용되는 근시안적인 방법이다.여러 경우 중 하나를 결정할 때 그 순간 최적이라고 생각되는 것을 선택해나가는 방식으로, 그 순간의 결정이 지역적으로는 최적의 해지만 최종적인 해답이 최적이라는 보장은 없다.탐욕스러운 선택 조건(greedy choice property)과 최적 부분 구조 조건(optimal substructure)라는 두 가지 특성을 가지는 문제를 해결할 때 가장 잘 작동한다. 이전의 선택이 이후의 선택에 영향을 주지 않고, 문제의 최적해가 부분문제에 대해서도 최적해다.그리디 알고리즘의 수행과정은 다음과 같다.1. 해 선택 - 현재 상태에서 부분 문제의 최적해를 구.......

[알고리즘 개념] 카운팅 정렬(Counting Sort, 계수정렬) [내부링크]

시간 복잡도 O(n)을 가지는 빠른 정렬 알고리즘으로 카운팅 정렬 혹은 계수 정렬이라고 부른다.A = 0, 1, 3, 3, 5, 2, 1, 2, 5, 4, 1, 4 라는 배열을 정렬하기 위한 방법을 살펴보자.1. 각 숫자의 등장 횟수를 세어 준다.이를 정수 항목들로 인덱싱 되는 카운트 리스트에 저장한다.count[i] = 숫자 i가 등장한 횟수2. 등장 횟수를 누적합으로 바꾼다. 3. 정렬할 배열을 뒤에서 앞으로 순회하며 정렬된 배열 B의 위치에 넣어준다. 2번 과정에서 구한 누적합이 배열 A의 숫자가 배열 B의 어느 위치에 들어가야할 지를 알려준다.A 배열의 맨 뒤에 있는 숫자인 4를 확인 후, count[4]에 있는 누적합을 확인해서 4가 있어야할 위치.......

SQLD 합격했다! (+유효기간 보수교육) [내부링크]

시험날부터 탈이 많았던 SQLD 자격증 결과가 나왔다!시험 치는 것보다 결과 보는 게 더 어려웠다. (;;)헷갈리는 게 너무 많았어서 턱걸이일줄 알았는데 생각보다 많이 맞췄다.아쉬운 게 내가 뭘 틀린지 모른다는 거..ㅠ특히 1과목에서 헷갈리던 게 2개였는데 뭐가 맞고 뭐가 틀린지 당최 모르겠다.자격증 확인해보니까 유효기간이 달랑 2년이어서 아쉬웠다.아무튼~ 9월에 쳤던 시험 결과가 다 좋아서 기분이 좋다 ㅎㅎ.+ 찾아보니 취득 1년 6개월~ 2년 사이에 무료 보수 교육을 들으면 영구 자격증이 된다고 한다!또 볼 생각하느라 약간 머리 아팠는데 다행이다.

[SWEA] 전기버스 [내부링크]

# 시행착오1. while 문 안에 for 문을 이용해서 현재 위치에서 k부터 0까지 이동한 뒤 모든 위치를 다 확인해도 충전기가 없을 경우 break 후 count 를 0으로 바꿔주고 해당 위치에 충전기가 있을 경우 현재 위치를 충전기가 있는 위치로 바꾼 뒤 count를 올려주는 로직을 생각했다.그러나 주어져있는 test case는 통과하고 문제 자체는 실패했다.. 다른 로직이 필요했다.2. for문을 없애고 현재 위치, 이전 위치를 이용해 문제를 푸는 방식으로 바꾸었다. 현재 위치는 일단 이전 위치 + k 로 정의한 후, 현재 위치에 충전기가 없으면 한 칸 씩 뒤로 간다.현재 위치와 이전 위치가 같으면 count를 0으로 바꾸고 break, 현재 위치에 충전기가 있.......

[SWEA] 숫자카드 [내부링크]

계수정렬 문제다. 계수 정렬문제는 나올 때마다 계수 정렬로 풀어야 한다는 사실을 자꾸 까먹는다.

[SWEA] 구간 합 [내부링크]

슬라이싱과 max, min 함수를 이용해서 풀었다.뭔가 원하는 방법이 이게 아닌 거 같기는 했지만..

[자료구조] Stack (스택) [내부링크]

물건을 쌓아 올리듯 자료를 쌓아 올린 형태의 자료구조로 선형구조(자료의 관계가 1:1)이다.책을 바닥부터 쌓아 올린 형태를 떠올리면 된다.자료를 삽입하거나 꺼낼 수 있으며, 마지막에 삽입한 자료를 가장 먼저 꺼내는 후입선출(LIFO), 선행후출(FILO)의 형태이다.A, B, C 순으로 삽입되면 C, B, A 순으로 꺼낼 수 있다.이 때, 마지막 원소의 위치를 Top 이라고 부른다. 자료가 없을 때 top은 -1을 가리킨다.자료를 저장하는 것을 push (삽입), 자료를 꺼내는 것을 pop (삭제) 라고 한다.스택이 공백인지 확인하는 isEmpty() 연산과 스택의 top에 있는 자료를 반환하는 peek() 연산이 있다.stack을 python으로 구현할 경우 리스트로 구현할.......

[알고리즘 개념] Dynamic Programming(동적 계획법) [내부링크]

다이나믹 듀오 아니고 다이나믹 프로그래밍. 알고리즘을 공부하는 사람이라면 한 번쯤 들어본 알고리즘의 꽃이다.한국어로는 동적계획법이다. 큰 문제를 작은 문제(subproblem)로 나누어 푸는 알고리즘을 일컫는데, 이름과는 아무 관련이 없다. 어떤 부분에도 동적인 부분이 없다! 수학자인 리처드 벨만이 1940년대에 사용하던 용어인데 프로세스가 '다단계적이고 시가변적'임을 나타내기 위해 'Dynamic'이라는 말을 사용했다고 한다. greedy algorithm과 같이 최적화 문제를 해결하는 알고리즘이다.1. Divide and Conquer 과의 차이점큰 문제를 작은 문제로 나눈다는 점에서 divide and conquer (분할정복) 알고리즘이 떠.......

Window 10 음성인식 인공지능 비서 Cortana 사용기 [내부링크]

어제 window 10을 2004 버전으로 업데이트 했다. (굉장히 뒤늦은 업데이트...) 윈도우에서 Linux subsystem을 쓰고 싶은데 그러기 위해선 2004 버전이 필요했고, window+r - winver로 확인해본 내 윈도우의 버전은 완전 구식. 그래요 저는 고물 컴퓨터를 쓰고 있었습니다.업데이트만 3시간이 넘게 걸렸다. 와이파이 문제인지 컴퓨터 문제인지 마이크로 소프트사 문제인지.그리고 오늘 모든 업데이트를 끝내고 노트북을 사용하려는데 이상한 아이콘이 생겨있다.cortana에게 말하기너는 누구니? 일단 클릭해본다..... 한국어는 사용할 수 없댄다.황당하다. 그럼 한국인의 컴퓨터에 왜 cortana를 넣어주었나요.그렇게 사용기는 막을 내림...은 아.......

Window 10 음성인식 인공지능 비서 Cortana 사용기 2 [내부링크]

어제 이 포스팅에서 cortana 챗봇을 사용해 보았는데 오늘은 음성인식을 사용해보도록 한다.여느 음싱인식 AI들이 기가지니~ 하이 빅스비~ 시리야~ 샐리야~ 헤이 카카오~ 클로바~ 등등.. 이름을 부르면 대답하는 것처럼 cortana도 같은 기능을 가지고 있다. cortana 어쩌구~ 라고 말하면 어쩌구 라고 말한 내용을 실행시켜준다!cortana가 Cortana라는 단어에 반응할 수 있도록 설정해준다!시험삼아 Hey Cortana 라고 불러보았다.잘 인식한다.벅스 플레이어를 또 실행시켜달라고 해본다.한글이라서 못알아듣는다.이건 누구의 잘못인가?1. 한글로 벅스플레이어 어플 이름을 설정한 nhn2. 한국어 지원을 안해주는 microsoft화가 난다. 원래부터.......

[오늘의 영어] head over to 와 head over heels [내부링크]

간만에 집에서 보낸 휴일!아무 것도 안 하고 누워만 있다가 뭐라도 해야지! 하는 마음에 영어공부를 잠깐 해보았습니다.진짜 뭐라도 시작하는 게 중요한 것 같아요.무기력하고 기운 빠지고 아무튼 즐겁지 못한 기분이었다가 확 기분이 좋아졌어요. ㅎㅎ아무튼! 오늘의 영어는 head over to 와 head over heels둘다 head over이 들어가는데 뜻은 완전히 다릅니다!head over to이것은 간단하게 head over 로도 쓰이는데요,I'll head over there~ 이라고 하면거기 갈게~ 라는 뜻이 됩니다!I head over to coffe shop. 은 나 커피샵 간다. 라는 뜻이 되겠죠?go 말고도 쓸 수 있는 단어가 생겼습니다 굿굿 그리고 같은 head over 어쩌.......

[오늘의 영어] I'm afraid~ [내부링크]

I'm not afraid ~ 는 난 두렵지 않아!I'm afraid ~ 는 난 두려워!?I'm afraid (that)~ 는 나쁜 소식을 상대방에게 전할 때 사용하는 말입니다.유감스럽지만~ 이다. 또는 미안하지만/죄송하지만~ 이다. 의 뜻으로 사용됩니다.I'm afraid I can't come to your party.미안하지만 네 파티에 갈 수 없을 것 같아.I'm afraid I don't agree with that.유감스럽지만 그것에 동의하지 않아.세상에는 참 다양한 영어표현이 있는 것 같습니다~ '-'

[오늘의 영어] I'm locked out of my room [내부링크]

여행을 갔을 때 객실 룸 카드키를 안에 두고 나왔는데 문이 잠겨버리는 경우가 자주 있습니다.이럴 때는 어떻게 표현해야 할까요?? I locked my room?이건 내가 직접 문을 잠근 게 되기 때문에 '문이 잠겨버린' 상황을 표현하기 위해서는 수동태를 이용해야 합니다I'm locked out of my room.언젠가 여행을 갈 수 있게 된다면 (ㅠㅠ) 유용하게 쓸 수 있기를 !

[서울/건대] 저스트 텐동 [내부링크]

일주일 전부터 가보고 싶었던 텐동 집을 드디어 방문했다! 비가 오는 날만 맛있는 걸 먹으러 가는 기분이지만 매일 비가 오니 어쩔 수가 없다.골목식당을 본 이후로 너무나 먹어보고 싶던 텐동들.. 근처에 있는 텐동 집은 무려 성수라서 귀차니즘이 일상인 인간상에게는 It is 무리 였으나 건대에 생겨서 드디어 먹어보았다! 나도 이제 텐동맛 알아요.아무튼 로데오 거리 커먼그라운드 근처 아디다스 매장 바로 옆에 위치해 있다. 카*오맵에는 요상한 위치라고 설정되어 있으나 그 위치는 전혀 아니다.입간판만 있으면 찍고 보는 인간. 비가 너무 와서 가게 전경을 찍을 정신은 없었다. 당당하게 입장했는데 웨이팅하라고 했다. 하지만 나는 친구.......

어제의 일기 [내부링크]

점심에 불떡 먹었다 냠냠굿회사에서 과자먹었다.굿굿.저녁에 고기먹음 굿굿환이네 갈비살 개짱카페비엔나 첫 도전개맛있음 굿굿그렇다. 맛있는 걸 먹어서 일기를 써보았다.

[Python3] for ~else [내부링크]

for ~else 문은 for문에서 break가 발생하지 않았을 경우의 동작을 else문에 적어주는 것이다try 문에서 에러가 발생했을 시 except 구문을 활용하는 try~ except 구문과 비슷한 역할이다.위는 만약 i가 10 이면 'unavailable'을 출력하고 break 하고,for 문이 끝날 때 (i==9)일때 finish!를 출력하는 for 문이다.이를 for ~else로 다시 표현하면 아래와 같다.위는 for문 안에 for문이 있고 if 문 안에서 break가 일어날 때 특히 유용하게 사용된다.프로그래머스 스킬트리 (summer/winter coding) 에서 사용할 수 있다.https://programmers.co.kr/learn/courses/30/lessons/49993?language=python3

[python3] 리스트 pop() [내부링크]

pop은 리스트의 요소를 끄집어 낼 때 사용한다. stack 에서의 pop()과 비슷한 역할을 한다.해당 요소를 반환한 뒤 리스트에서 삭제한다.pop(인덱스) 는 해당 인덱스에 위치한 원소를 반환하고 리스트에서 삭제한다.

IT 스타트업에서의 인턴을 마치며 [내부링크]

2달간 진행했던 인턴이 끝났다.끝난지는 조금 지났지만 이제서야 블로그에 글을 쓴다.인턴이 끝나고 아무것도 하기싫다라는 무기력증에 빠져서 하루종일 누워있었기 때문에. 하하. 나는 스타트업에서 인턴을 진행했고 결론부터 말하자면 ... 이름 좀 있는 유망 스타트업이 아니라면 깊게 고민을 해보길 바란다.중소와 스타트업의 장점이자 단점으로 꼽히는 현업에 바로 투입된다라는 것은 나에게 있어서는 장점이었다. 비전공자라 IT기업문화를 접할 기회가 많이 없었기에 서비스를 직접 느끼고 체험하며 소비자의 니즈와 현업에 대해 알아볼 수 있다는 것은 좋았으나 사수가 없다.다시 말해 나를 가르칠만한 사람이 없다. 그냥 처음부.......

혼자만의 도서관 챌린지와 오픽 시험 [내부링크]

도서관 챌린지 1일차.영작을 너무 못해서 중학 영작 책을 사서 읽었다.그리고 느낀 것. 나 대학 헛다녔네..도서관 챌린지 2일차.이번주 시험공부를 했다. 할 수록 모르겠다. 하지만 해야지... (하기 싫어..)건너뛴 3일차..사유 : 오픽 시험을 봤다....... 열심히 헛소리만 하다가 왔다.....15문제중 제대로 답한 건 3문제 인 것 같은데. pause 엄청 걸리고 단어 생각 안 나고..칠만 팔천원 기부하고 온 느낌!! ava야 내 돈으로 맛있는 거 먹어라. 나갈 때 옆사람 소리가 살짝 들렸는데 진짜 잘하더라.. 저런 사람들이 al 받는 거 겠지?제발 IM이라도 나오길 .. NL만 아니길..

오픽 IM2 후기 [내부링크]

으하하.. 공채 시작전에 급하게 본 오픽 시험 결과가 나왔다. 결과는 IM2!! 너무 공부하기 싫어서 미루고 미루다가 간단한 문장 영작 공부만 했는데 생각보다 잘 나왔다.솔직히 pause 엄청 되고 끝에 결론 못내고 흐지부지 넘어간 질문 엄청 많아서 IL도 안 나올 줄 알았다 대체 대답 어떻게 자연스럽게 마무리하는건데요..그래도 롤플레이는 최대한 자신있게 해서 채점자가 앞에 망한 질문들을 눈감아준 듯.. ㅎㅎ혼자 컴퓨터에 대고 '오마이갓! 진짜? 그렇게 해줄 수 있어? 고마워~' 이러고 나왔다.스크립트 하나도 없이 진짜 생각나는 대로 말했고 말하면서 내가 뭔소리를 하는 거야 라고 생각했는데도 점수가 괜찮은 걸.......

[머신러닝] Pytorch(파이토치) 설치하기 [내부링크]

https://pytorch.org/get-started/locally/먼저 위의 Pytorch 홈페이지를 접속하면 아래와 같은 모습이 화면에 뜬다.Stable 을 기본으로 선택한 뒤 자신에게 맞는 OS를 선택하고 설치할 Package에 따라 선택한다.아나콘다를 사용한다면 conda를 선택하고, 그냥 pip를 이용하여 설치할 수도 있다.Pytorch를 사용할 Language를 선택한다. 보통은 Python을 사용한다.CUDA 버전을 확인하고 자신에게 맞는 버전을 선택한다.CUDA 버전은명령어로 확인할 수 있다.그리고 Run this Command에 뜬 명령어를 복사한 뒤 conda는 anaconda prompt에서,pip는 cmd 창(terminal)에서 실행시키면 Pytorch가 설치된다.python을 실행시키고 import torch를 했을.......

[백준 2442/python3] 별 찍기 - 5 [내부링크]

문제첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ... , N번째 줄에는 별 2xN-1개를 찍는 문제별은 가운데를 기준으로 대칭이어야 한다.입력첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.출력첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.정답 코드파이썬은 가장 직관적이고 간단하게 코드가 나온다는 게 큰 장점인 것 같다.rutye 님의 길라잡이를 하나씩 해보기로 했다.이번주는 쉬운 별찍기부터 ㅋㅋ 워밍업이다.c언어를 처음 했을 때 열심히 삼각형으로 사각형으로 찍었던 별을 다시 찍고 있다니 기분이 이상하다 ㅋㅋㅋ그때는 아무것도 모르는 햇병아리였는데.. 어느새 이만큼 나이를 먹고..ㅋㅋ프로그래머스 문제는 풀이를 올려도 되는지.......

[백준 2445/python3] 별 찍기 - 8 [내부링크]

문제예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요입력첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.출력첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.코드위 아래로 나누어서 별을 찍었다.

[Codeforces] 158b - Taxi [내부링크]

n개의 어린이 그룹이 있을 때 각 어린이 그룹이 최소한의 택시를 이용한다고 했을 때 택시는 몇 대인지 구하는 문제이다.4명까지 한 택시를 탈 수 있고 각 그룹은 분리되면 안 된다.예전에 c언어로 푼 문제인데 python으로 다시 풀어보았다.탐욕 알고리즘을 사용하면 된다. 이에 관해서는 나중에 따로 정리해서 다시 공부해야겠다.파이썬은 리스트 원소 개수를 n으로 받아도 딱히 쓸모가 없다.. 리스트 자체를 for 문으로 돌리면 되니까..게다가 요즘은 input()으로 입력을 받지 않고 함수 parameter로 들어오는데 예전 문제라 요즘 트렌드와 많이 달라졌다찾아보니 같은 풀이인데 훨씬 간단하게 구현한 분이 계신다.

오늘의 일기 [내부링크]

오랜만에 후문에서 타이인플레이트를 먹었다.근데... 너무 늦게 나오고 맛도 변하고 바닥도 미끄럽고 설거지하던 장갑 그대로 계산해주고 총체적 난국이었다. 황당 그 자체다시 안 갈 것 같다. 나의 팟타이 맛집 이제 안녕.그리고 오늘의 바보짓회사에 노트북 충전기를 두고 왔다.아! 오늘부터 감사 일기를 적기로 했다.초등학생 때 적던 추억을 되살려 본다 ㅋㅋ어디 적을 지 고민하다가 그냥 여기에 적으려고.1. 퇴근할 때 비가 내리지 않아서 감사합니다.2. 내일이 금요일이라 감사합니다.3. 새 친구를 사귀게 되어 감사합니다.하하. 나도 친구 생겼어c아무튼 내일부터는 일찍 일어나야지. 진짜로.기상인증 오픈채팅 같은 거.......

드디어 깃허브 블로그를 단장했다! [내부링크]

이 때 만들어야지 생각한 블로그를... 이제야 제대로 꾸밈(?) 해보았다.하루종일 이것만 붙잡고 있었네.. 공부해야되는데.. 아무튼! 완전 뿌듯뿌듯.구글이랑 네이버 검색등록도 완료했다! 얄루세상에서 가장 직관적인 깃허브 아이디를 갖고 있는 인간.블로그 이름 생각 안 나서 친구가 네이버 블로그 닉네임으로 하라고 추천한 걸로 해버렸다.아무튼.. 파비콘도 넣어야하고 댓글 창도 넣어야하고 수정사항이 많지만 일단은 이정도로 만족.

[선형대수학] 스칼라 행렬(Scalar matrix)과 대각행렬(Diagonal matrix) [내부링크]

대각행렬과 스칼라행렬에 대해 이야기 하기전에 주대각선이 무엇인지부터 알아야한다. 주대각선정사각 행렬 또는 행렬식의 왼쪽 위의 끝에서 오른쪽 아래의 끝으로 이어지는 선즉, 행과 열의 지표수가 같은 성분(k행 k열의 성분)들을 말한다. 위와 같이 붉은 색으로 표시한 것이 주대각선이다.주대각선은 전치행렬의 전치 축 역할을 하며 주대각선 상에 위치한 원소들을 대각원소라고 한다.반대각선은 이와 반대로 오른 쪽 위의 끝에서 왼쪽 아래로 이어지는 선으로 다음과 같이 표현할 수 있다. 대각행렬(Diagonal matrix)주대각선을 제외한 곳의 원소가 모두 0인 행렬이다. 주로 정사각행렬을 가리킨다.n * n 행렬을 D라고 할 때가 대각행.......

[선형대수학] 삼각행렬 (Triangular Matrix) [내부링크]

삼각 행렬(Triangular matrix)정사각행렬의 특수한 경우로 주대각선을 기준으로 대각항의 위쪽이나 아래쪽 항들의 값이 모두 0인 경우를 말한다.주대각선 성분 위쪽의 모든 성분이 0인 행렬을 하삼각행렬 (lower triangular matrix) 라고 한다.주대각선 성분 아래쪽의 모든 성분이 0인 행렬을 상삼각행렬 (upper triangular matrix) 라고 한다.상삼각행렬이면서 하삼각행렬인 행렬은 대각행렬이다.삼각행렬이면서 동시에 대각성분이 모두 0인 행렬은 순삼각행렬(stric triangular)이라고 한다.위는 하삼각행렬이면서 순하삼각행렬이다.

[Python3] .isdigit() .isdecimal() .isnumeric() 숫자 판별 [내부링크]

이들은 모두 문자열이 숫자인지 아닌지를 판별하여 True, False를 return 하는 함수이다..isdigit()이는 문자열이 숫자로만 이루어져 있을 경우 True, False를 return 한다. ²와 같은 지수를 뜻하는 문자도 True로 반환한다.그러나 음수를 뜻하는 - 문자가 들어갈 경우 False를 반환한다..isnumeric()이는 문자열이 숫자로만 이루어져 있을 경우 True, False를 return 한다.²와 같은 지수와 ½같은 분수 문자도 True로 반환하며, 이 역시도 음수를 뜻하는 - 문자는 False로 반환한다.사람이 숫자라고 인식하는 문자는 모두 True로 반환한다고 보면 된다..isdecimal()0~9사이의 숫자로 이루어진 문자열만 True를 반환하는 함수이다.

[Python3] .count() 요소 개수 세기 [내부링크]

문자열과 리스트, 튜플 객체에서 count함수를 이용하면 원하는 요소의 개수를 셀 수 있다.문자열.count(c)리스트.count(c)튜플.count(c)

[Python3] enumerate() [내부링크]

순서가 있는 자료형(list, set, tuple, string)를 입력받아 인덱스를 포함하는 enumerate 객체를 리턴한다.보통 for문 내에서 리스트의 인덱스 값을 이용해야할 경우 유용하게 쓰인다.enumerate() 함수를 쓰지 않았을 때는 인덱스 값과 list 값을 같이 사용하기 위해for i in range(len(list)) : print(i, list[i]) 등과 같이 힘들게 표현해야 했지만enumerate()를 사용 하면,위와 같이 간단하게 표현할 수가 있다.

[Python3] 리스트의 인덱싱과 슬라이싱 [내부링크]

리스트 인덱싱리스트는 파이썬의 배열과 같다고 보면 된다, 따라서 위와 같이 인덱스를 이용해 요소 값을 출력할 수 있다.인덱스 -1은 맨 끝의 요소값을 출력한다.위와 같이 이중리스트의 인덱싱도 가능하다.리스트 슬라이싱시작 지점과 끝지점을 정해 리스트를 위와 같이 다양하게 잘라낼 수 있다.시작지점이 -1일 경우는 맨 끝의 요소만 잘라내는 것으로 list[4:]와 같다.끝지점이 -1일 경우는 list[0:3]과 같은 역할을 한다.그렇다면 비어있는 배열에서도 -1로 인덱싱과 슬라이싱을 할 수 있을까?다음과 같이 비어있는 배열에서는 -1로 인덱싱을 할 수 없지만 -1로 슬라이싱은 가능한 것을 알 수 있다.

[오늘의 영어] jam in [내부링크]

요즘 토익 lc 공부를 시작했습니다.수능이 끝나고 영어 공부를 놓은 지 벌써 오천년..무료 제공 영어 듣기를 어제부터 듣고 있는데 익숙하지 않은 발음이 한 가득.. 듣기 100문제를 어떻게 버티나 싶습니다 (ㅠㅠ) 할 수 있겠죠? 아무튼!오늘은 스크립트를 보는데 처음 보는 표현이 등장했습니다.The paper keeps getting jammed in our new printer.종이가 우리 새 프린트기에 계속 .. jammed in? 종이와 프린트기라는 단어로 '걸려있다'는 뜻으로 유추할 수 있을 것 같습니다.jam in유추한 것과 비슷한 뜻입니다.아마 잼이 빵 사이에 있어서 끼다 라는 뜻이 나온 게 아닌가 싶습니다.jam 이라는 단어를 이용한 다양한 숙어들이.......

[오늘의 소비] 에어팟 프로 [내부링크]

금요일날 사무실에서 충동 구매한 에어팟이 도착했다. 오늘 도착한 건 아니고 토요일에 도착했다.로켓배송의 대가 쿠팡답게 잠깐 나갔다 온 사이 배송이 왔다. 감동받아서 상자를 찍어보았다. 쿠팡 후기에 상자가 다 찌그러지고 에어캡도 대충 둘러져 있었다는 사람이 꽤 있어서 걱정했는데 다행히 멀쩡하게 잘 도착했다. 안전배송 요갓타 뽁뽁이를 뜯어보니 모다피가 나를 반긴다.금방이라도 가치가욥~! 하며 나에게 달려올 것 같다.음. 캘리포니아.캘리포니아 감성이 가득한 에어팟 프로가 나타났다.사실 캘리포니아 감성이 뭔지 모른다.본체를 꺼내자 저런 손잡이가 나와서 잡아 당겨보니 이어팁과 충전잭이 등장했다.나는 충전잭이 이.......

[오늘의 영어] Elaborate on [내부링크]

비도 엄청 오고... 의욕도 안 생기고.. 놀고만 싶은 요즘엄청 자주 봤지만 뜻은 모르는 단어를 하나 또 발견했습니다.바로 Elaborate!수능 쳤을 때 (우와 까마득하다)몇 번 봤던 거 같은데 제대로 된 뜻을 몰라서이참에 한 번 찾아보았습니다.Elaborate형용사, 동사, 자동사 각각의 뜻이 연관되어 있는 것 같죠?그 와중에 Elaborate on 이라는 숙어에 대해 더 궁금해져서 찾아보았습니다.Elaborate onHow can I elaborate on that?그걸 어떻게 더 자세히 설명하지?Can you elaborate on your dream?네 꿈에 대해 더 자세히 설명해줄래?와 같이 사용될 수 있을 것 같습니다.

카카오 가을 인턴 1차 코딩테스트 후기 [내부링크]

일단은 두 번 당황했다.첫 번째. 문제가 영어였다. 당연히 한글일 줄 알고 룰루랄라 들어갔다가 영어를 보고 깜짝 놀랐다.영어 공부 열심히 하자.두 번째. 생각보다 문제가 엄청 쉬웠다.진짜 첫 문제 풀고 너무 쉬워서 당황했다.진짜 이게 끝? 정말로 이게 끝이야? 이렇게 쉽게 풀린다고? 라는 생각을 계속 했다.자료구조 기본기있고 알고리즘 기본기 있으면 쉽게 풀릴 문제들이 나왔다.아마 2차 테스트가 어려운 것 같다. 너무 쉬웠어서 모든 문제를 다 맞춰야 통과될 듯 ㅜㅜ2차 테스트 난이도가 궁금한데 나는 ..... 의외의 복병을 하나 만나서......알고리즘을 다 풀고 그 녀석을 못 풀 줄이야 ... ^^..하하..뭐가 부족한지 알았으니 열.......

[Python3] 리스트에서 최대 최소 찾기 min/max [내부링크]

리스트에서 최소 값과 최대 값을 찾을 때 for문을 돌며 minNum, maxNum 값을 갱신시키는 방법 말고 효과적으로 최소값과 최대값을 알 수 있는 함수가 있다.이는 min과 max 이다. 단순히 min(a,b) 와 같이 변수끼리 비교하는 것도 가능하지만 list 에 있는 값을 비교하는 것도 가능하다! 아주 놀라운 함수이다.c언어에서는 여러 변수에서 min()이나 max 함수를 이용할 때 min(a,min(b, c)) 같이 min안의 min을 (재귀함수야 뭐야) 이용해야 했지만, python은 min안에 최소값을 찾고 싶은 모든 변수를 넣을 수 있기 때문에 리스트의 최소 값을 알 수 있는 것이다.여러 수의 비교가 가능한 python의 min()과 max()사용법은 다음과 같다.아래와 같.......

[Notion/LaTeX] 수식 표현시 위첨자 아래첨자 사용하기 [내부링크]

위첨자x^{위 첨자로 사용할 문자열}위첨자는 x^(x^x) 까지 표현 가능아래첨자x_{아래 첨자로 사용할 문자열}아래첨자 역시 두 번까지 가능

[부산/광안리] 바로해장 [내부링크]

함 가? 함 가! 맨이 되어 급 부산 여행을 떠난 둘째날 아침 해장을 위해 들린 바로해장. 파란 간판이 눈에 띈다. 광안리에서 15분 정도 걸어 도착했다.날씨가 좋아서 걷는 동안 기분이 좋았다.가게 안에 멋진 호랑이 그림이 있었는데 찍지는 않았다.식사류는 단 세 종류.해장 스파이스 카레와 해장 초계 국수 해장 짬뽕 수제비이다. 수육과 전골도 있지만 다들 식사류를 많이 먹는 것 같았다.해장집이지만 술을 파는 모습. 역시 해장술인가.해장 카레는 대체 무엇인지. 카레로 해장이 되는지.. 옆 테이블은 카레를 먹고 있었는데 어떤 맛인지 물어보고 싶었다.날이 더워서 일행은 모두 초계국수를 주문했고 나는 짬뽕 수제비를 주문했다. 수제비.......

[서울/성수] 카페 코튼 [내부링크]

감성샷은 잘 모르겠고 내 눈앞에 카페 간판이 있으니 일단 찍어본다는 마인드의 사진.건대입구역과 성수의 딱 중간에 있는 카페다.비가 엄청나게 오던 어제 다녀왔다.1층과 2층 모두 카페 코튼이다. 1층은 좌식과 입식이 섞여있고 2층은 모두 입식이다.친구 4명과 함께 갔는데 1층에 마땅히 앉을 자리가 없어서 방황하고 있으니 직원이 2층으로 올라가라고 알려주었다.1층에 사람이 많아서 사진은 안 찍었다.초상권 소중.2층 벽에 걸린 사진. 사진이 삐뚤어 보인다면 당신의 마음이 삐뚠 게 아니고 제가 삐뚤게 찍은 게 맞습니다. 삐뚤삐뚤.2층 입구에도 초록 간판이 나를 반긴다.쾌적한 2층. 테이블 간의 간격이 엄청나게 넓다.바닥에는 사.......

[오늘의 영어] In about an hour [내부링크]

무료 LC 강의를 듣다가 알게 된 'In about an hour'이라는 표현!전공 서적에 있는 영어만 해석할 줄 알던 (사실 이것도 잘 못함..)저는 이게 대체 무슨 말인고.. 대략 한시간 안에?.. 로 해석을 했는데요.실은 더 정확한 뜻이 있었습니다! In about an hourabout이 대략 ~ 이고 In 이 시간의 경과를 나타내는 ~후에 라는 뜻으로 사용 되어In about an hour이 한 시간 후에가 됩니다.In하면 ~안에/ ~에 라는 뜻 만 알았었는데 더 많은 뜻이 있다는 걸 알게 되었습니다!In about two months, I have to go.두 달 후에 가야 해.I'll be there in a second.곧 도착해.

MVC 패턴 [내부링크]

공부를 하다 보면 무조건 한 번쯤은 듣게 되는 MVC 패턴.대충 중요한 패턴인 건 알겠는데 대체 그래서 이게 뭔데? 싶은 마음에 이번 기회에 정리를 해보았다.MVC 패턴은 Model, Controller, View의 앞 글자를 딴 것으로 프로그램을 구성하는 요소들을 모델, 컨트롤, 뷰로 나누어 설계하는 아키텍처 패턴 중의 하나이다. MVC 패턴에 대해 자세히 알아보기 전에 소프트웨어 아키텍처와 아키텍처 패턴에 대해 간단하게 알아보도록 한다.소프트웨어 아키텍처소프트웨어 아키텍처란 소프트웨어의 골격이 되는 기본 구조이자, 소프트웨어를 구성하는 컴포넌트 간의 관계를 표현하는 시스템 구조이다.소프트웨어 개발 시 적용되는 원칙이며 이해 관.......

[Python3] .sort와 sorted [내부링크]

sort와 sorted는 모두 리스트를 오름차순으로 정렬해주는 함수이지만 반환과 리스트 자체의 정렬 여부에 차이점이 있다..sort().sort() 함수는 위와 같이 리스트 자체를 정렬해준 뒤 반환하지 않는다.sorted()sorted() 함수는 정렬된 리스트를 반환하고 실제 리스트는 정렬되지 않는다..sort(reverse=True)sorted(l, reverse=True)reverse =True 인자값을 넣어주면 내림차순으로 정렬된다.key = lambda().sort() 와 sorted() 함수 둘다 위와 같이 lambda 함수로 key 값을 지정해 그를 기준으로 정렬할 수 있다.부록 - 람다 함수에 대한 자세한 설명https://blog.naver.com/je_un/222032966229

[오늘의 영어] state-of-the-art 와 state of the art [내부링크]

기술 블로그를 읽다보면 state-of-the-art 라는 말이 심심치 않게 보입니다.직역 해볼까요? 예술의 상태?(이 알고리즘은 예술이야...?!)블로그에서 소개하는 알고리즘이 예술이긴 해도 그런 뜻은 아닐 것 같다는 예감이 듭니다.옥스포드 영영 사전에서 state of the art를 검색하면 다음과 같이 서술되어 있습니다.the most recent stage in the development of a product, incorporating the newest ideas and the most up-to-date features.최신의 아이디어와 최신 기능을 포함한 제품 개발의 가장 최근의 단계대충 최신 기술을 뜻한다고 보면 될 것 같죠?하지만 하이픈이 있는지 없는지에 따라 품사가 달라집니다.state of the .......

200712_Today I Think [내부링크]

이번 주 내내 생각이 엄청나게 많았다..과연 내가 이 길로 갔을 때 잘할 수 있을 것인가? 나의 실력은 어느정도인가? 내 결과물을 자신있게 꺼내보일 수 있는가?등등의 생각을 엄청나게 많이했다... 취준이라는 게 이상하게 사람의 자존감을 뚝뚝 떨어트리는 요소인 듯하다.일단 나는 개발 관련 커리어가 좀 부족한 것 같고.. (내세울만한 프로젝트가 많이 없는 것 같다. 수상 내역은 있긴한데....그게 다는 아니니까)영어 실력도 부족하고.. 토익과 오픽을 둘다 준비해야 하는 때가 와서 심란한 상태다.그래도 해야지! 요새 왜 이렇게 자신감이 떨어지는 지 모르겠다.예전엔 아무튼 난 해낸다. 나는 할 수 있다. 나는 능히 할 수 있는 인간이다.......

200713_Today I Think [내부링크]

전공에 계속 스트레스를 받으니까 다른 공부가 재밌다.진짜 세상에서 영어가 제일 싫었는데 영어 공부가 갑자기 진짜 너무 재밌다...현실도피로 영어공부를 하게되다니 ㅋㅋㅋㅋㅋ뭐 좋은 일이지 이것도.. 원래는 현실 도피로 유투브를 보곤 했는데 현실도피도 약간 취준에 맞게 바뀌는 건가?아무튼 오늘 단어를 엄청 많이봤다. 내일이면 또 까먹겠지만 복습하면 되니까.실습이 끝나기 전에 천 개를 다 보는게 목표다. 어제 오늘 90개정도 봤다. 다 외운 건 아니고 계속 외우고 있다.단어만 외워도 토익의 반은 먹고 들어간다는... 말을 한 번 믿어보도록 한다. 슬슬 어플로 토익을 풀어봐야겠다.난 문법 바보다.. 문법 너무 어려워 ㅠㅡㅠ..흑그.......

200715_Today I Think [내부링크]

머신러닝은 2년 경력 이상 혹은 석사를 원하는 경우가 너무 많아서 요근래 너무 우울했다.진지하게 대학원 다니는 분에게도 물어보고 여러가지 찾아봤지만...배우는 건 재밌어도 당장 대학원에 진학하기엔 학비나 생활비가 이래저래 너무 부담스러워서 생각이 많았다.현재 복전을 하고 있기는 해도 원전공 성적때문에 타대 대학원 알아보기도 힘들구.. 그런데 스타트업이나 연구쪽은 실력만 있으면 학사도 뽑는 걸 보고 희망이 생겼다. 어쨌든 내가 잘 하면 되는 거니까!이래저래 채용형 인턴도 있는 것 같구...해보고 안 되면 그때 석사 고민해보면 되는 거고. (대학원 외부 장학도 생각보다 있었다)일단 해보자! 이번 방학이 가장 중요하다! 일.......

[오늘의 영어] from scratch 맨 처음부터, 맨 바닥부터 [내부링크]

Humans don’t start their thinking from scratch every second. 졸작 공부를 위해 영어 문서를 읽는데 첫문장부터 처음 보는 숙어가 등장했습니다. 스크래치로 부터? 내가 아는 스크래치는 이 고양이인데!? (절대 이 뜻은 아님)from scratch맨 처음부터, 맨바닥부터,아무런 사전준비(지식) 없이from the begining과 도 같은 뜻이며,스포츠의 출발/시작 선을 표시하기 위해 땅위에 줄을 긋는 것에서 유래해scartch는 출발선을 뜻해서 출발선으로 부터, 즉 맨처음부터 라는 뜻을 가지게 된 것입니다.확실히 유래를 알고 나니 뜻이 더 잘 이해가 되는 것 같습니다!지금 상황을 이 숙어에 맞게 작문해보자면 ..I started my graduati.......

[Python3] 람다(lambda) 함수 [내부링크]

lambda()lambda 함수는 런타임에 생성해서 사용할 수 있는 일시적인 익명 함수입니다. 인공지능 프로그래밍에 많이 쓰이는 함수형 언어인 LISP 에서 물려받은 함수라고 합니다.아래는 일반적인 함수 표현식입니다. -x 값을 리턴해주는 함수입니다.이것은 람다 형식으로 아주아주 간단하게 표현이 가능합니다.또는 아래와 같이 사용할 수도 있습니다.따로 귀찮게 함수를 정의하지 않고도 사용이 가능하기 때문에 map, filter, reduce, sorted 함수에도 사용이 가능합니다.map()map 함수는 map(함수, 리스트) 로 구성되어있습니다.리스트의 인자를 함수의 파라미터로 넣어 리턴된 값을 다시 새로운 리스트로 반환해 줍니다.range(5)로 [0,1,2,3.......

[오늘의 영어] attempt to ~하려고 시도하다 [내부링크]

오랜만에 머리를 식힐 겸 예전에 가끔 들어가던 커뮤니티에서 이런 캡처 이미지를 보았습니다.낮은 자세로 신속하게 대피한다.Attempt to extinguish the fire.(뭔가 좀 이상한데...)대충 봐도 한글과 영어가 전혀 매치가 안 되었습니다.. -_-그렇다면 영어로 적혀있는 문장의 뜻은 무엇일까요?Attempt to~~하려고 시도하다.attempt는 시도, 시도하다 라는 뜻을 가진 단어로to 가 붙어 ~ 하려고 시도하다 라는 뜻이 되었습니다.그렇다면 위의 뜻은 불을 끄려고 시도해라 (ㅋㅋㅋㅋ) 가 되겠네요.자국민은 보호하고 외국인은 불을 끄라고 시키는 ㅋㅋㅋ아무튼! 내일도 잘 모르는 숙어들을 발견하면 또 포스팅 해보겠습니다.

200716_Today I Think [내부링크]

생각보다 나는 파이썬 문법을 잘 몰랐다..!! (충격)코드리뷰를 하는데 난생 처음 보는 문법 대잔치대충 이정도만 알면 되겠지~ 했는데 그게 끝이 아니었다..이제라도 알아서 다행이다. 9월에 이 사실을 알았어 봐.진짜 울었을거다. 오늘부터 코테 준비도 슬슬 하고 있다.늦었다고 생각할 때가 진짜 늦은 거니까 ^^..더 늦기 전에 공부해야지 !그리고 블로그 생각보다 재밌다.말 많은 나에게 제격이다.예전에는 공부한 거 그냥 비공개로 올려놓고 혼자 봤는데 왜 그랬지?공개로 해놓고 사람들이 조회하는 거 구경하는 게 더 재밌다. ㅋㅋ아 맞다. 저번에 스피또 산 거 전부다 새 스피또 교환 당첨(..) 이어서 또 긁었는데 망했다.제발 로또 당첨 돼.......

[오늘의 소비] 애플 펜슬 1세대 [내부링크]

때는 바야흐로 2020년 6월 27일 다음주에 있을 시험 공부를 하기 싫어하던 와중.. 애플 펜슬이 갑작스레 사망했다.시험이 끝나고 달려간 잠실 수리 센터에서 약 1시간을 기다리고 들은 말은 ... "그냥 새로 사세요."애플 정책이 펜슬은 수리가 없고 교체인데 구매한지 1년이 넘어서 그냥 새로 사는 게 낫다는 거였다.내가 1시간이나 기다렸는데... 너무 어이가 없어서 로또 당첨되면 산다. 라고 했는데 그냥 애플펜슬을 먼저 사버리게 됐다. 방학 동안 공부해야할 게 많아졌기 때문이다. (저 안 울어요)아무튼...... 어제 사고 오늘 뜯어보는 애플 펜슬.프리스비에서 119000원 주고 샀다.(내 피같은 돈..)평범한 애플 제품의.......

Don't be a developer [내부링크]

너무 웃기다아니 안 웃겨..근데 진짜 구글링 실력만 늘어가더라

E: Could not get lock /var/lib/dpkg/lock-frontend 해결하기 [내부링크]

우분투 리눅스 환경에서 패키지 인덱스 정보를 업데이트 하기 위하여 apt 명령어(apt install/apt update)를 사용할 때 나타나는 오류로 다음과 같은 에러 메세지가 뜬다.E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?해당 상황은 다른 사용자 또는 자신이 해당 apt 명령어를 사용중일 때 접근 시 발생한다. (충돌을 막기 위해 lock을 걸어준 셈)또한 /var/lib/dpkg/lock 파일이 존재하면 패키지 및 인덱스 정보를 업데이트 하지 않기 때문에 발생한다.따라서 다음 소스코드.......

1A. Threatre Square [내부링크]

도시 기념일을 맞아, Threatre Square n x m meter의 직사각형 바닥에 a x a 사이즈의 flagstone로 포장하려고 할 때 flagstone이 얼마나 필요한 지 구하는 문제이다. 이 때, flagstone이 바닥을 덮는 면적이 총 바닥의 면적보다 커도 상관없다. (작으면 당연히 안 된다.)Inputn, m, aOutput필요한 flagstone의 개수파이썬은 split() 이라는 함수를 이용하여 입력된 문자열을 지정된 문자를 기준으로 분리할 수 있다.만약 split(',') 이고 입력값이 1,2,3,4 라면 ,를 기준으로 문자열을 분리해준다.map()함수를 이용하여 입력값을 정수값(int)로 반환하여 각각 n, m, a에 저장한다.파이썬은 여러 개의 입력값을 받아 한 번에 저장하.......

236A. Boy or Girl [내부링크]

닉네임에 사용된 알파벳 개수를 이용하여 채팅 상대가 여자인지 남자인지 판별해야 한다.예를 들어 ASDFGDGD 는 'A', 'D', 'F', 'G', 'S' 로 알파벳 5개가 사용된 닉네임이므로 남자이다.Input100글자 이내의 소문자 문자열 (닉네임)Output여자일 경우, 'CHAT WITH HER!' 을 출력하고 남자일 경우 'IGNORE HIM!'을 출력한다.Python의 set() 함수를 이용하여 문자열의 중복을 제거한 리스트를 만든 뒤, 조건문을 이용하여 리스트의 길이가 홀수이면 'IGNORE HIM!'을, 짝수이면 'CHAT WITH HER!'를 출력한다.

69A. Young Physicist [내부링크]

주어진 벡터 (x, y, z)에서 각 요소들 끼리 더한 합이 0이 되면 YES를 아니면 NO를 출력하도록 한다.Inputn(벡터의 개수) 과 x, y, z 벡터 들Output'YES' 또는 'NO'map(f, iterable)은 함수와 반복 가능한 자료형을 입력받고, 입력받은 자료형의 각 요소를 함수 f가 수행한 결과로 묶어서 돌려주는 함수이다.입력받은 문자열을 정수로 변환한 뒤 이 결과를 list로 확인하기 위해 list(map(f, iterable))와 같이 나타내었다.

58A. Chat room [내부링크]

입력한 문자열에서 몇몇 문자를 지워서 'hello'가 나올 경우 YES를 출력하고 아니면 NO를 출력한다.예를 들어 ahhelllloou 에서는 ah, lll, ou를 지우면 hello가 나오지만 hlelo는 아니다.Inputs (문자열, 1~100 개의 문자로 이루어져 있다.)Output'YES' 또는 'NO'처음에는 word='hello'로 정의하고 i == s[a] 일 경우 count를 증가하는 코드를 생각했는데 또 다른 방법이 있을 것 같아 찾아보니 파이썬의 string.find(value, start, end) 메소드를 이용하여 더 손쉽게 구현할 수 있었다.find() 함수는 문자열 중 찾는 문자(문자열)가 처음으로 나온 위치를 반환하고, 찾는 문자가 존재.......

[백준/python3] 1912 연속합 [내부링크]

처음에는 for 문 두개를 이용하여 풀었는데 시간 초과가 떴다.for문 하나로 해결해야 하는 문제였던 것이다.분류가 dynamic programing이기 때문에 점화식을 구했다.계속해서 더해나가다가 dp[i-1]+s[i]한 값이 s[i]보다 작다면 연속으로 더할 필요가 없으므로 s[i]로 연속합을 교체하면 된다.따라서 점화식은dp[i] = max(dp[i-1] + s[i], s[i])생각해보니 dp[i-2]나 dp[i-3]값이 필요한 것이 아니기 때문에 배열로 선언하지 않고 dp 변수 하나로만 문제를 푸는게 가능했다.dp 값을 업데이트 하기 전까지는 그전 dp값이 저장되어 있기 때문이다.처음에 maxNum (최대 연속합)의 초기값을 0으로 설정했다가 음수합이 최대 연속합일 경우가.......

[C++] 이러한 피연산자와 일치하는 "<<" 연산자가 없습니다. [내부링크]

cout << 구문에서 string class를 사용 시 흔히 일어나는 오류로, #include <string>을 해주면 손쉽게 해결된다.

Visual Studio 사용시 cmd 창이 바로 꺼질 때 해결방법 [내부링크]

빈프로젝트로 열었을 때 디버깅없이 ctrl+F5로 실행하면 바로 cmd 창이 꺼지는 현상이 생긴다.이를 해결하기 위해서는 일단 프로젝트 - 속성을 클릭한다.링커 - 시스템에 들어간다하위시스템 - 콘솔을 클릭하고 확인을 누른다.아래와 같이 ctrl+F5를 눌러도 cmd 창이 유지되고 잘 실행 되는 것을 볼 수 있다!

[Selenium] 버전 문제 해결하기 - This version of ChromeDriver only supports Chrome version 80 [내부링크]

파이썬에서 셀레니움 실행시 다음과 같은 에러가 떴다.이는 현재 chrome 버전과 chromedriver 버전이 맞지 않아 session이 생기지 않았다는 오류로 현재 chrome 버전을 확인하고 버전에 맞는 chromedrive를 다운 받아주면 해결된다.chrome 버전은 다음과 같이 메뉴 - 도음말- chrome 정보를 통해 확인할 수 있다나의 크롬 버전은 다음과 같다. 자신의 크롬버전을 확인한 뒤,https://chromedriver.chromium.org/downloads위 사이트에서 버전에 맞게 chromedriver를 다운받아 다시 실행하면 Selenium이 제대로 실행되는 것을 확인할 수 있다.

[백준/python3] 2588번: 곱셈 [내부링크]

https://www.acmicpc.net/problem/2588세 자리 수 두 개를 입력받아 곱셈 과정을 출력해야 한다.나는 파이썬에서 입력은 기본적으로 string type으로 받아들이기 때문에 string의 index로 접근해서 푸는 방법을 선택했는데 100과 10으로 나눈 나머지, 몫을 사용하여 푸는 방법이 있어 그 방법으로도 다시 풀어보았다.** 몫만 나타내기 위해 // 기호를 사용하였는데 네이버에선 주석으로 인식했는지 회색으로 뜬다.. 이런건 예외처리 안 해주나.아무튼 ! b를 100으로 나눈 나머지에 또 10으로 나눈 나머지를 구해서 1의 자리를 구하고, 100으로 나눈 나머지에 10을 나누어서 10의 자리를 구하고, 100으로 나누어 100의 자리를 구해서 계산해 주었.......

정보처리기사 필기 합격.. [내부링크]

정보처리 기사 시험친 게 저번주 같은데 벌써 합격 발표일이다.시험친 날에는 언제 발표하나 당장 내일 발표하길 이랬는데 정신없이 과제(ㅠㅠ) 하다보니 6월도 끝났다.시나공으로 공부했었는데 적중률이 아주 처참..;1과목부터 막혀서 멘붕이었는데 다행히 합격이었다.이상한 게 1과목에서 큰일났다 망했다 어떡하지 이 생각만 들었는데 왜인지... 채점 결과는 4과목이 망해있었다ㅋㅋㅋㅋㅋㅋ1과목은 의외로 고득점 ㅋㅋㅋ 헷갈려서 고친 게 틀렸더라고.. (고치지 말 걸)아무튼 멘붕이어서 푸는 내내 3회차를 노리자!취업 .. 천천히 생각해보자! (ㅋㅋ) 이러면서 마킹 검수도 제대로 안 했었는데 다행히 실수한 건 없었다.가채점이랑 똑같은 결.......

[Python3] 아스키 코드 변환하기 ord(), chr() 함수 [내부링크]

ord(c) : 하나의 문자를 아스키 코드 값으로 변환해 주는 함수두 개 이상의 문자를 바꾸려고하면 위와 같이 TypeError가 일어난다.ord()는 하나의 문자, 즉 길이가 1인 문자열을 변환하나 'abs'는 길이가 3인 문자열이기 때문이다.정확하게 입력하면 다음과 같은 결과를 얻을 수 있다.chr(i) : 아스키코드를 문자로 변환해주는 함수미리 지정된 아스키코드의 범위를 넘어가면 오류가 뜬다.제대로 입력하면 위와 같은 결과를 얻을 수 있다.

[Python3] dir()과 type() [내부링크]

dir()dir() 은 어떤 객체를 인자로 넣어주면 해당 객체가 가지고 있는 변수와 메소드를 모두 보여준다. a 는 string 객체이므로 join(), replace() 와 같이 익숙한 string 메소드 들이 보인다.만약 사용자 정의 class를 이용해 객체를 선언했다면 dir() 함수는 어떻게 될까?내가 선언한 methodA와 variableA가 잘 보이는 것을 확인할 수 있다.type()객체의 데이터 타입을 확인할 수 있는 함수이다.위에서 사용했던 a의 데이터 타입을 확인해 보자.a는 __main__.A 클래스 인 것을 알 수 있다.이외에도 여러 객체들의 데이터 타입을 해당 함수로 알아볼 수 있다.

[Word2Vec 이해하기] Gensim과 Word2Vec [내부링크]

인공지능이 자연어를 처리하여 자연스러운 대화가 가능하도록 하기 위해서는 STT(Speech-To-Text) 와 TTS(Text-To-Speech) 같은 기술이 필요하다. 이러한 자연어처리 과정 중 문장의 의미를 분석해서 의도를 정확히 파악하는 게 중요하다. 이에 형태소 분석, 구문분석, 화행분석, 대화처리과정이 필수적이다.Word Embdding컴퓨터에게 문장을 학습시키기 위해 단어를 수치화 하는 것이 목표이전에는 one-hot embedding 방식을 사용했다.단어 n개 짜리 사전이 있다. 이때 어떤 단어를 표현하기 위해 길이 n 짜리 벡터를 만들고 그 단어가 해당되는 자리에 1을 넣고 나머지에 0을 넣는다.사전에 [고래, 강아지, 곰, 거북이] 가 있다면 강아지를.......

[IBM Watson Studio] Data Asset 자료 Notebook에 불러오기 [내부링크]

위와 같이 Data Asset에 등록한 자료를 Notebook에서 사용하려면 일단 Find and Add Data 에서 사용하고 싶은 자료를 새로운 cell에 Insert Credential 해준다.Insert to code를 누르면 Insert Credential 버튼이 나온다.그러면 위와 같이 COS에 등록된 data의 credential이 뜬다.그리고 새로운 cell을 하나 더 insert 해준 뒤 다음의 코드를 넣는다.ibm_boto3 library는 IBM Cloud Object Storage API에 대한 access를 제공한다.cos.download_file 이 COS에 업로드 되어 있는 자료를 watson studio 환경 내로 다운받아서 사용할 수 있게 해준다.참고 : https://medium.com/ibm-data-science-experience/working-with-ibm-cloud-object-st.......

723A-The New Year: Meeting Friends [내부링크]

움직이는 최소거리 구하기. 태그 sorting.가운데 애 중심으로 모이면 그냥 제일 큰 숫자 빼기 제일 작은 숫자하는게 최소 거리다.sort 시키고 빼주면 끝괜히 처음에 어렵게 생각해서 평균냈네...

155A. I_love_%username% [내부링크]

맨 앞은 amazing에 포함이 안됨.들어온 숫자가 저장된 max와 min보다 크거나 작으면 교체하고 amazing~한 상황이 됨!

750A. New Year and Hurry [내부링크]

같은 역할을 하는 소스인데 break 문이 들어가면 오류가 뜨는것같다.대체 왜지 !?