kqng_diary의 등록된 링크

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

[Jupyter Notebook] 가상환경 커널 추가하기 [내부링크]

파이썬을 활용해 인공지능이든 데이터분석이든 할 때 보통은 가상환경을 만들어서 개발을 하고, 한 줄 한 줄 테스트해보며 개발하기 위해 개발 과정에서는 주피터노트북을 주로 사용합니다. 이 주피터노트북에서 준비한 가상환경에서 작업하기 위해서는 가상환경 커널을 추가해야 합니다. [1. ipykernel 설치] 우선 콘다든 기본 venv든 가상 환경에 진입하여 작업합니다. ipykernel을 설치해줍니다. pip install ipykernel [2. 커널 등록] test라는 가상환경 이름을 TEST 라는 표시로 커널을 띄우기 위해 다음과 같이 입력합니다. python -m ipykernel install --user --name test --display-name "TEST" 이 두 과정을 거치면 주피터 노트북에 접속해서 new 버튼에 환경에 보이든, vscode에서 노트북 사용시 우측 상단에 커널을 선택하는 환경에 보이든 모두 사용하실 수 있습니다. 끝!

[Lofo(Little forest) 리틀포레스트] 페스토치킨 그릴 샌드위치 - (성수, 뚝섬 브런치 카페) [내부링크]

안녕하세요 오늘은 회사 근처 브런치 카페가 있어서 포스팅해요 [Lofo(Little forest) 리틀포레스트] 라는 곳입니다. 이전에 포스팅한 전자방이라는 음식점 위에 위치하고 있어요. 리틀포레스트 서울특별시 성동구 성수일로12길 23 2층 [가게 인스타] https://www.instagram.com/littleforest.iii/ 일요일 휴무 2층에 위치하고 있어서 1층 계단 문을 열고 들어가야 합니다. 이때까지만해도 카페에 대한 기대감이 전혀 생기지 않을 정도로 아주 평범한 외관이어서 찾기 어려울 수 있지만 그닥 어울리는 이미지는 아니라 내부만 올리겠습니다. 내부로 들어오면 많이 보이는 평범한 건물 바닥이 보이지만, 인테리어가 세련되서 하얗고 깔끔하다는 느낌이 들어요 곳곳에 배치된 식물도 아주 조화롭습니다. 혼자서도 브런치를 즐길 수 있는 자리입니다. 창 밖이 아주 좋은 풍경은 아니지만 혼밥 시대에 브런치도 혼자 먹을 수 있는 자리 귀하다..! 물론 저는 회사사람하고 왔으므로

2×n 타일링 2(백준 11727번, DP, C++) [내부링크]

이번에 풀어볼 문제는 백준의 11727번, 2×n 타일링 2 문제입니다. 이번 포스팅에선 다이나믹프로그래밍(DP)를 이용하여 문제를 풀어보았습니다. 블로그 초기에 2xn 타일링 문제를 올렸었는데 한 단계 더 머리를 써야하는 문제입니다. 과거 포스팅한 2xn 타일링 문제를나름 친절하게 설명했으니 이 포스팅을 보기 전에 보시면 좋은 참고자료가 될 것 같습니다. https://blog.naver.com/h0609zxc/221239257653 2 x n 타일링(백준 11726번) 동적 프로그래밍에 대한 감을 익히기 위해서 비교적 간단한 백준의 2 x n 타일링 문제를 풀어보게 되었습니... blog.naver.com 출처 & 문제 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 11727번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 2×n 타일링 2 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율

1로 만들기(백준 1463번, DP, C++) [내부링크]

이번에 풀어볼 문제는 백준의 1463번, 1로 만들기 문제입니다. 이번 포스팅에선 다이나믹프로그래밍(DP)를 이용하여 문제를 풀어보았습니다. 출처 & 문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 1463번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 1로 만들기 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 63299 20534 13237 32.007% 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 ... www.acmicpc.net 문제 설명 요약 1. 임의의 정수 n을 입력받으면 n을 1로 만들고자 합니다

연결 요소의 개수(백준 11724번, DFS, 그래프, 연결 요소) [내부링크]

이번에 풀어볼 문제는 백준의 11724번 연결 요소의 개수 문제입니다. 이번 포스팅에선 그래프 탐색에서 쓰이는 DFS와 BFS중 DFS를 이용하여 문제를 풀었습니다. 출처 & 문제 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 11724번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 연결 요소의 개수 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 3 초 256 MB 12815 6434 4228 48.331% 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어... www.acmicpc.net 문제 설명 요약 1. 그래프에서 연결은 어

퇴사(백준 14501번, 재귀, Recursion, C++) [내부링크]

이번에 풀어볼 문제는 백준의 14501번, 퇴사 문제입니다. 이번 포스팅에선 자기 자신을 호출하는 함수, 재귀함수를 이용하여 풀었습니다. 출처 & 문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 T i 와 상담을 했을 때 받을 수 있는 금액 P i 로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일 2일 3일 4일 5일 6일 7일 T i 3 5 1 1 2 4 2 P i 10 20... www.acmicpc.net 문제 설명 요약 1. N일 동안 일하고 퇴사를 하기로 한 상담원이 N+1일에 받을

부분집합의 합(백준 1182번, 재귀, Recursion, C++) [내부링크]

이번에 풀어볼 문제는 백준의 1182번 부분집합의 합 문제입니다. 이번 포스팅에선 자기 자신을 호출하는 함수, 재귀함수를 이용하여 풀었습니다. 출처 & 문제 https://www.acmicpc.net/problem/1182 1182번: 부분집합의 합 1182번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 부분집합의 합 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 256 MB 13477 6296 3968 45.117% 문제 N개의 정수로 이루어진 집합이 있을 때, 이 집합의 공집합이 아닌 부분집합 중에서 그 집합의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1≤N≤20, |S|≤1,000,000) 둘째 줄에 N개의 정수가 빈 칸을... www.acmicpc.net 문제 설명 요약 1. 집합의 원소의 개수와 부분집합의 합으로 만들고자하는

쉬운 계단 수(백준 10844번, JAVA, DP) [내부링크]

백준 쉬운 계단 수(백준 10844번, JAVA, DP) KQNG 2018. 12. 3. 15:55 이웃추가 본문 기타 기능 안녕하세요 오랜만입니다!. 그동안 여러가지 일이 겹쳐서 자주 포스팅을 하지 못했는데 다시 조금씩 포스팅을 하려합니다! 꾸준함이 생명인데 흨흨 ㅠㅠ... 아무튼! 이번에 풀어볼 문제는 백준의 10844번 쉬운 계단 수 문제입니다. 문제는 다음과 같습니다. 문제 설명 요약 1. 자릿수 N을 입력받는다. 2. N 자릿수 중에서 계단 수가 총 몇개인지 구하여 출력한다. *계단수 : 모든 인접한 수가 1씩 차이나는 수. ex) 12121, 23456, 345456 전체 코드는 다음과 같습니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //1. 몇 자릿수 인지 입력받는다. int N = s

다음 순열(백준 10972번, C++ STL) [내부링크]

백준 다음 순열(백준 10972번, C++ STL) KQNG 2018. 10. 19. 1:57 이웃추가 본문 기타 기능 이번에 풀어볼 문제는 백준의 10972번 문제인 "다음 순열" 입니다. 문제는 다음과 같습니다. 문제 설명 요약 1. 입력된 숫자만큼 숫자를 차례대로 입력받습니다. 2. 입력된 순열의 다음 순열을 출력합니다. 3. 만약 마지막 순열이라면 -1을 출력합니다. 전체 코드는 다음과 같습니다. #include <iostream> #include <vector> #include <algorithm> using namespace std; int n; vector<int> v; void input() { ios_base::sync_with_stdio(false); cin >> n; int temp = 0; for (int i = 0; i < n; i++) { cin >> temp; v.push_back(temp); } } void printNext() { if (next_per

네트워크 연결(백준 1922번, 최소 신장 트리, MST, 크루스칼, Kruskal) [내부링크]

백준 네트워크 연결(백준 1922번, 최소 신장 트리, MST, 크루스칼, Kruskal) KQNG 2018. 7. 17. 14:48 이웃추가 본문 기타 기능 이번 포스트 역시 이전에 Prim 알고리즘으로 풀이를 했던 네트워크 연결이라는 백준의 1922번 문제를 풀어보았습니다. 코드를 설명하면서 알고리즘 설명이 병행되기 힘든 것 같아 조만간 알고리즘 설명 게시판도 만들어 올릴 계획이니 기다려주시기 바랍니다. 문제 설명 요약 1. 컴퓨터가 여려대 존재할 때 컴퓨터를 모두 연결하고자 한다. 2. 각 컴퓨터간 연결을 하기 위해선 비용이 존재한다. 3. 모든 컴퓨터를 연결할 수 있는 가장 적은 비용을 구해 출력한다. 우선 전체 코드입니다. #include <iostream> #include <queue> #include <functional> #include <tuple> using namespace std; int computerNum, lineNum; int sumOfCost; int

최소 스패닝 트리(백준 1197번, 최소신장트리, MST, 크루스칼, Kruskal) [내부링크]

백준 최소 스패닝 트리(백준 1197번, 최소신장트리, MST, 크루스칼, Kruskal) KQNG 2018. 7. 17. 12:55 이웃추가 본문 기타 기능 현재 포스트와 다음 포스트, 총 2가지 포스트는 이전에 올렸던 최소신장트리 알고리즘인 프림과는 다른방식인 크루스칼 알고리즘을 이용해서 풀어보았습니다. 프림은 정점을 이어주는 방법으로 진행하는 것이라면 크루스칼은 간선의 가중치가 적은것부터 연결해주는 방식입니다. 그 과정에서 Find-Union이라는 알고리즘도 적용하였으니 자세한 공부가 필요하신분은 따로 다른 글을 읽어보시면 좋을것 같습니다. 문제 설명 요약 1. 그래프의 정점의 개수와 간선의 수가 주어집니다. 2. 각 정점간의 비용이 존재합니다. 3. 각 정점을 이용해 최소 스패닝 트리를 만들때 가중치를 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <queue> #include <functional> #include <tuple> us

상근이의 여행(백준 9372번, 최소 신장 트리, 최소 스패닝 트리, MST, PRIM) [내부링크]

백준 상근이의 여행(백준 9372번, 최소 신장 트리, 최소 스패닝 트리, MST, PRIM) KQNG 2018. 7. 11. 16:28 이웃추가 본문 기타 기능 이전 포스트와 마찬가지로 상근이의 여행이라는 백준의 문제를 PRIM알고리즘을 이용해 문제를 풀었습니다. 문제 설명 요약 1. 상근이는 여라 국가를 비행기를 통해 여행하고자 합니다. 2. 상근이는 새로운 비행기를 무서워하기 때문에 최대한 적은 비행기를 이용하고자 합니다. 3. 이 때 모든 국가를 여행했을 때 비행기를 몇번 탔는지 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <vector> #define INF 987654321 using namespace std; vector<int> result; //여러 케이스의 결과 저장 int testCase; //테스트 케이스 int nationNum, lineNum; //나라의 수와 비행기 라인 수 int minCount; int cost

최소 스패닝 트리(백준 1197번, 최소 신장트리, MST, PRIM, 우선순위큐) [내부링크]

백준 최소 스패닝 트리(백준 1197번, 최소 신장트리, MST, PRIM, 우선순위큐) KQNG 2018. 7. 10. 17:15 이웃추가 본문 기타 기능 이번 포스트에선 백준의 1197번 문제인 최소 스패닝 트리를 풀었습니다. 바로 전 포스트에서도 PRIM알고리즘을 이용해 풀어보았는데요 같은 방식으로 코드를 짜도 답은 제대로 나오지만 백준 사이트에 제출할 시 메모리 초과가 뜨기 떄문에 조금 다른방식으로 우선순위 큐를 사용하여 풀어보았습니다. 문제 설명 요약 1. 그래프의 정점의 개수와 간선의 수가 주어집니다. 2. 각 정점간의 비용이 존재합니다. 3. 각 정점을 이용해 최소 스패닝 트리를 만들때 가중치를 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <vector> #include <queue> #include <functional> using namespace std; int vertexNum, edgeNum; //정점의 수, 간선의 수

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

백준 단지번호붙이기(백준 2667번, DFS) KQNG 2018. 7. 4. 14:58 이웃추가 본문 기타 기능 이번 포스트에서는 DFS를 이용하는 백준의 단지번호붙이기라는 문제를 풀어보았습니다. 문제 설명 요약 1. 정사각형 모양의 지도에 집이있는곳과 집이없는 곳이 표시되어있습니다. 2. 집이 인접하여 있으면 같은 단지로 묶어줍니다. 3. 총 아파트 단지의 수와 각 아파트 단지에 속해있는 집의 수를 오름차순으로 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <algorithm> #include <vector> using namespace std; char complexChar[26][26]; int complexSize; int complex[26][26]; int complexCnt = 2; int dy[4] = { -1, 1, 0, 0 }; int dx[4] = { 0, 0, -1, 1 }; vector<int> v; void input

DFS와 BFS(백준 1260번, DFS, BFS) [내부링크]

백준 DFS와 BFS(백준 1260번, DFS, BFS) KQNG 2018. 7. 4. 11:46 이웃추가 본문 기타 기능 이번 포스트에서는 DFS와 BFS를 이용하는 백준에 있는 DFS와 BFS를 풀어보았습니다. 문제 설명 요약 1. 그래프의 정점의 개수, 간선의 개수, 시작할 정점의 번호가 주어집니다. 2. 시작 정점으로부터 깊이 우선 탐색의 경로를 출력합니다. 3. 시작 정점으로부터 너비 우선 탐색의 경로를 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <queue> using namespace std; int graph[1001][1001]; int vertex, edge, start; //정점, 간선, 시작점 int dfsVisit[1001]; //DFS 경로를 구할 때 방문을 체크할 배열 int bfsVisit[1001]; //BFS 경로를 구할 때 방문을 체크할 배열 void inputAndInit() { ios_base::syn

최단경로(백준 1753번, 다익스트라, 우선순위큐) [내부링크]

백준 최단경로(백준 1753번, 다익스트라, 우선순위큐) KQNG 2018. 4. 17. 17:19 이웃추가 본문 기타 기능 이번 포스트에서는 최단경로를 찾는 알고리즘은 다익스트라를 우선순위 큐를 이용해 푸는 백준의 최단경로 문제를 풀어보았습니다. 문제 설명 요약 1. 정점들과 정점들을 이어주는 간선들이 존재합니다. 2. 간선을 통해 이동할 때는 해당 간선에 대한 가중치 또는 비용이 듭니다. 3. 시작점이 주어지면 모든 정점에 대해 도달할 수 있는 최단 경로를 출력하고 불가능하면 INF를 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <queue> #include <vector> #include <functional> using namespace std; #define INF 987654321 //아주 큰 값 #define MAX_V 20001 //정점의 최대 개수 int vertex, edge, startVertex; //정점, 간선, 시작

달팽이(백준 1913번, 배열) [내부링크]

백준 달팽이(백준 1913번, 배열) KQNG 2018. 4. 16. 17:50 이웃추가 본문 기타 기능 이번 포스트는 학교에서 진행하는 알고리즘 스터디의 조원 문제를 풀어볼 겸 규칙을 찾고 배열을 이용하는 문제인 달팽이 문제를 풀어보았습니다. 문제 설명 요약 1. 홀수인 자연수 n을 입력받으면 달팽이 모양으로 n * n 숫자판을 출력합니다. 2. 또 n * n 미만의 수가 입력되면 달팽이 모양 판에서 어디에 위치하는지를 출력합니다. 우선 전체 코드입니다. #include <iostream> using namespace std; int snailSize; //입력받을 크기 int findNum; //찾고자 하는 수 int snail[1001][1001]; //숫자를 달팽이 모양으로 채울 배열 void inputSnailSizeAndFindNum() { ios_base::sync_with_stdio(false); //cin, cout 속도 개선용 cin >> snailSize; cin

미로 탐색(백준 2178번, BFS) [내부링크]

이번에는 백준에 있는 미로탐색을 큐를 사용하는 BFS를 이용해 풀어보게 되었습니다. 문제 설명 요약 1. N x M 크기의 0과 1로 구성된 미로가 있습니다. 2. 1은 이동할 수 있는 칸, 0은 이동할 수 없는 칸을 의미합니다. 3. 이 때 1, 1에서 N, M까지 이동할 수 있는 최소의 칸을 구합니다. 우선 전체 코드입니다. #include <iostream> #include <queue> using namespace std; int mazeXSize, mazeYSize; //미로 사이즈 int moveX[4] = { 0, 0, -1, 1 }; //x 이동 int moveY[4] = { -1, 1, 0, 0 }; //y 이동 char mazeMap[101][101]; //미로 맵 int visitCount[101][101]; //해당 인덱스 방문 횟수 void inputMazeSize() { ios_base::sync_with_stdio(false); cin >> mazeXSiz

2 x n 타일링(백준 11726번) [내부링크]

백준 2 x n 타일링(백준 11726번) KQNG 2018. 3. 28. 12:32 이웃추가 본문 기타 기능 동적 프로그래밍에 대한 감을 익히기 위해서 비교적 간단한 백준의 2 x n 타일링 문제를 풀어보게 되었습니다. 문제 설명 요약 1. 2 x n 크기의 직사각형을 1 x 2 타일 또는 2 x 1 타일로 채울 수 있습니다. 2. 이 때 채울 수 있는 방법의 수를 구합니다. 우선 전체 코드입니다. #include <iostream> using namespace std; int n; //2 x n 에서 n을 나타내는 변수 int caseNum[1001]; //n에 개수에 따른 타일을 놓는 경우의 수를 저장하는 배열 void inputN() { cin >> n; } void findNumberOfCases() { caseNum[1] = 1; caseNum[2] = 2; for (int i = 3; i <= n; i++) { caseNum[i] = (caseNum[i - 1] + ca

BOGGLE(알고리즘 문제 해결 전략, 알고스팟) [내부링크]

알고스팟 BOGGLE(알고리즘 문제 해결 전략, 알고스팟) KQNG 2018. 3. 25. 20:21 이웃추가 본문 기타 기능 알고리즘 문제해결전략 6장에 있는 무식하게 풀기의 예제인 BOGGLE을 한번 풀어보았습니다. 무식하게 풀기 챕터는 사람이 머리를 써서 푼다기보단 컴퓨터가 좋은 계산능력을 이용해서 풀게끔 하라는 챕터인 것 같습니다. 문제 설명 요약 1. 5 x 5 알파벳이 입력된 보글 게임판이 있습니다. 2. 주어진 단어를 보글 게임판에서 8방향으로 한 칸씩 이동하며 만들 수 있는지 확인합니다. 3. 주어진 단어를 만들 수 있으면 단어 뒤에 YES를 붙이고 없으면 NO를 붙여 출력합니다. 우선 전체 코드입니다. #include <iostream> #include<vector> #include<string> using namespace std; int testCase = 0; int wordNum = 0; int moveRow[8] = { -1, -1, -1, 1, 1, 1,

JUMPGAME(알고리즘 문제 해결 전략, 알고스팟) [내부링크]

알고스팟 JUMPGAME(알고리즘 문제 해결 전략, 알고스팟) KQNG 2018. 3. 27. 11:04 이웃추가 본문 기타 기능 이번에는 알고리즘 문제 해결 전략 8장에 있는 동적 계획법 문제인 외발뛰기, 알고스팟 ID는 JUMPGAME 인 문제를 풀어보았습니다. 동적 계획법은 복잡한 문제를 간단한 여러 개의 나누어 푸는 방법을 말합니다. 이 문제에서는 방문한 곳을 표시해두어 저장해두어 여러번 계산을 방지하는 메모제이션 기법을 썼다고 볼 수 있습니다. 문제 설명 요약 1. n x n 크기의 점프할 수 있는 거리가 적힌 판이 있습니다. 2. 시작점에서 점프할 수 있는 거리만큼 오른쪽 또는 아래로 이동하여 목표지점까지 도착할 수 있는지 확인합니다.(시작점 : 맨 왼쪽 위, 도착점 : 맨 왼쪽 아래) 3. 점프하여 도착점으로 갈 수 있다면 YES, 없다면 NO를 출력합니다. 우선 전체 코드입니다. #include <iostream> #include <vector> #include <st

더 맵게 (프로그래머스 level2, 우선순위 큐, C++) [내부링크]

이번에 포스팅할 문제는 프로그래머스 코딩테스트의 연습 2단계인 "더 맵게" 입니다. 문제는 다음과 같습니다. 문제 설명 요약 1. 매운것을 좋아하는 Leo가 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶어합니다. 2. 더 맵게 만드는 방법은 2가지 음식을 섞어서 만드는 방법이고, 공식은 다음과 같습니다. [섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)] 3. 몇 번 음식을 섞어야 모든 음식이 K 이상의 스코빌 지수를 가질 수 있는지 구해 출력합니다. 코드는 다음과 같습니다. #include <vector> #include <queue> using namespace std; int solution(vector<int> scoville, int K) { int answer = 0; int lowlow_scoville; //가장 맵지 않은 음식의 스코빌 지수 int low_scoville; //두 번째로 맵지 않

프린터 (프로그래머스 level2, Python) [내부링크]

이번에 포스팅할 문제는 프로그래머스 코딩테스트의 연습 2단계인 "프린터" 입니다. 문제는 다음과 같습니다. 문제 설명 요약 1. 프린터에서 문서를 인쇄하려고 하는데 프린터를 사용하는 규칙이 존재하고 규칙은 다음과 같습니다. A. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. B. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. C. 그렇지 않으면 J를 인쇄합니다. 2. 인쇄 대기목록과 내가 인쇄를 요청한 문서의 위치가 주어지면 몇 번째로 인쇄되는지 출력합니다. 코드는 다음과 같습니다. def solution(priorities, location): answer = 0 # 인쇄 대기목록이 남아있다면 반복 while len(priorities) != 0: # 1. 대기목록의 가장 앞에있는 문서가 나머지 문서들보다 중요도가 높은 경우 if priorities[0] == max(priorities): a

124나라의 숫자 (프로그래머스 level2, Python) [내부링크]

이번에 포스팅할 문제는 프로그래머스 코딩테스트의 연습 2단계인 "124나라의 숫자" 입니다. 문제는 다음과 같습니다. 이번 포스팅에선 문제 설명 요약 대신 설명을 위해 만든 표를 보겠습니다. 10진법 몫(//3) 나머지(%3) 124나라 1 0 1 1 2 0 2 2 3 1 0 4 4 1 1 11 5 1 2 12 6 2 0 14 7 2 1 21 8 2 2 22 9 3 0 24 10 3 1 41 이번 문제를 푸는 핵심은 3으로 나눈 몫과 나머지를 보고 규칙을 찾는 것입니다. 규칙 찾기 문제는 종이나 표에 다 적어보고 차근차근 살펴보는것이 중요합니다. 나머지에 따라 124 나라의 숫자 중 무엇을 쓸 지 정해집니다. 나머지가 1이라면 1, 나머지가 2라면 2, 나머지가 0이라면 4를 써서 숫자를 뒤에서부터 만들어나가는 것이 풀이방법입니다. 한 가지 주의할 점은 나머지가 0일 떄, 4로 바꾸어주는 부분에서 몫을 1 뺴주어야 합니다. 그래야 3번씩 싸이클을 맞춰서 동작할 수 있도록 할 수 있습

기능개발(프로그래머스 level2, c++, 큐, Queue) [내부링크]

프로그래머스 기능개발(프로그래머스 level2, c++, 큐, Queue) KQNG 2018. 10. 16. 21:16 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트의 연습 2단계인 "기능개발" 입니다. 문제는 다음과 같습니다. 어떠한 작업의 현재까지의 진행도와 그 작업을 하루동안 진행하는 속도가 주어집니다. 작업의 진행도가 100이 되면 배포할 수 있는 상태가 됩니다. 뒤에 작업은 먼저 완료가 되어도 앞의 작업이 먼저 완료가 되어야 같이 배포할 수 있습니다. 배포를 할 때 마다 배포하는 작업의 개수를 리턴합니다. 코드는 다음과 같습니다. #include <string> #include <vector> #include <queue> using namespace std; vector<int> solution(vector<int> progresses, vector<int> speeds) { vector<int> answer; queue<int> q; //...1

스킬트리 (프로그래머스 level2, Python) [내부링크]

이번에 포스팅할 문제는 프로그래머스 코딩테스트의 연습 2단계인 "스킬트리" 입니다. 문제는 다음과 같습니다. 문제 설명 요약 1. 스킬을 배울때는 선행 스킬이 존재, 선행 스킬을 먼저 배워야 뒤에 있는 스킬을 사용할 수 있습니다. 2. 선행 스킬이 없는 스킬은 자유롭게 배울 수 있습니다. 3. 스킬을 배우는 순서가 주어졌을 때, 여러 스킬 트리 중 가능한 스킬트리의 개수를 출력합니다. *스킬트리 = 유저가 스킬을 배우는 순서 코드는 다음과 같습니다. def solution(skill, skill_trees): answer = 0 for str in skill_trees: temp = "" # 스킬에 없는 스킬들은 지우고 저장할 변수 isOk = True # 가능한 스킬트리의 개수를 저장할 변수 # 1. 스킬에 없는 스킬들은 뺴고 temp에 저장 for s in str: if skill.find(s) != -1: temp += s # 2. temp의 길이만큼 스킬과 비교하여 # 같으면

체육복(프로그래머스 level1, 탐욕법, C++) [내부링크]

프로그래머스 체육복(프로그래머스 level1, 탐욕법, C++) KQNG 2018. 10. 2. 16:00 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트의 연습 1단계인 "체육복" 입니다. 문제는 다음과 같습니다. n명의 학생이 있을 때 체육복을 잃은 사람, 여벌의 체육복을 갖고 온 사람이 주어집니다. 체육복을 잃은 사람은 양 옆의 학생이 여벌의 체육복이 있다면 빌릴 수 있습니다. 이렇게 하였을때 체육복을 입을 수 있는 학생은 총 몇명인가를 구하는 문제입니다. 주의사항은 입출력 예시에는 나와있지 않지만 여벌을 가지고 왔지만 1벌을 도난 맞은 경우도 존재해 이 부분을 신경써주어야 합니다. 또 알고리즘 분류법이 탐욕 알고리즘으로 되어있으니 아래 링크를 참조하시면 좋을 듯 합니다. https://ko.wikipedia.org/wiki/%ED%83%90%EC%9A%95_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 탐욕 알고리즘 - 위키백과, 우

예산(프로그래머스 level1, 2018 서머코딩, 파이썬) [내부링크]

프로그래머스 예산(프로그래머스 level1, 2018 서머코딩, 파이썬) KQNG 2018. 9. 28. 23:06 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 "예산" 입니다. 문제는 다음과 같습니다. 부서별로 원하는 물품의 가격을 적어 요청하였을 때 한정된 예산으로 얼마나 많은 무서에 원하는 물품을 지원해 줄 수 있는지를 계산하는 문제입니다. 문제가 되게 장황하지만 적은 가격을 요구하는 부서부터 차례대로 더해나가면 되는 문제입니다. 코드는 다음과 같습니다. def solution(d, budget): answer = 0 d.sort() sum = 0 for i in d: if sum + i <= budget: sum += i answer += 1 else: break return answer 우선 부서별로 원하는 물품 가격이 들어있는 리스트를 정렬해줍니다. 그 다음 순서대로 더해나가면서 예산이 초과되는지 확인합니다. 만약 초과하지 않는다

하샤드 수(프로그래머스 level1, 자릿수의 합, 파이썬) [내부링크]

프로그래머스 하샤드 수(프로그래머스 level1, 자릿수의 합, 파이썬) KQNG 2018. 9. 28. 21:46 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 "콜라츠 추측" 입니다. 문제는 다음과 같습니다. 하샤드 수는 어떠한 양의 정수 x가 있다면 x의 각 자릿수의 합으로 x를 나눌 수 있는 수를 말합니다. 하샤드 수라면 True, 아니라면 False를 반환하는 문제입니다. 코드는 다음과 같습니다. def solution(x): answer = True tempX = x sumOfDigit = 0 #...1 while tempX != 0: sumOfDigit += tempX % 10 tempX = tempX // 10 #...2 if x % sumOfDigit != 0: answer = False return answer ...1) 각 자릿수의 합을 우선 구해줍니다. 구해주는 방법은 tempX가 0이 될 때 까지 계속해서 10으로 나눈

최대공약수와 최소공배수(프로그래머스 level1, GCD, LCM, 파이썬) [내부링크]

프로그래머스 최대공약수와 최소공배수(프로그래머스 level1, GCD, LCM, 파이썬) KQNG 2018. 9. 28. 1:11 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 "최대공약수와 최소공배수" 입니다. 문제는 다음과 같습니다. 말 그대로 두 숫자가 주어지면 두 숫자의 최대공약수와 최소공배수를 구하면 되는 문제입니다. 여기서 알아야할 점은 최대공약수와 최소공배수를 구하는 알고리즘입니다. - 최대 공약수 구하는 방법 : 두 수 n과 m이 있을 때 큰 수를 작은 수로 나누어 나머지를 구합니다. 나머지가 0이 아니라면 계속해서 0이 될 때까지 나머지를 구합니다. 나머지가 0이 될 때 나누어짐을 당한 수가 최대 공약수입니다. -최소 공배수 구하는 방법 : n * m 값을 최대 공약수로 나누어줍니다. 코드는 다음와 같습니다. def solution(n, m): answer = [] tempN = n tempM = m while tempM !=

정수 제곱근 판별(프로그래머스 level1, 파이썬) [내부링크]

프로그래머스 정수 제곱근 판별(프로그래머스 level1, 파이썬) KQNG 2018. 9. 27. 11:15 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 "정수 제곱근 판별" 입니다. 문제는 다음과 같습니다. 정수 n이 어떤 정수의 제곱이라면 어떤 정수에 1을 더한값의 제곱을 리턴하고 어떤 정수의 제곱이 아니라면 -1을 리턴합니다. 코드는 다음과 같습니다. def solution(n): answer = 0 trueOrflase = False #...1 for i in range (1, n + 1): if pow(i, 2) == n: answer = pow(i+1, 2) trueOrflase = True break #...2 if(not trueOrflase): answer = -1 return answer ...1) 1부터 정수 n까지 반복을 합니다. 만약 i의 제곱이 n과 같다면 answer에 i+1의 제곱값을 넣어주고 bool타입의 변수

정수 내림차순으로 배치하기(프로그래머스 level1, 파이썬, 정렬) [내부링크]

프로그래머스 정수 내림차순으로 배치하기(프로그래머스 level1, 파이썬, 정렬) KQNG 2018. 9. 27. 0:42 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 "정수 내림차순으로 배치하기" 입니다. 문제는 다음과 같습니다. 정수 n이 주어지면 정수에 있는 각 자리의 숫자들을 내림차순으로 배치하는 문제입니다. 코드는 다음과 같습니다 def solution(n): answer = 0 #...1 temp = n tempList = [] while temp != 0: tempList.append(temp % 10) temp = temp // 10 #...2 tempList.sort() tempList.reverse() #...3 tempStr = '' for i in tempList: tempStr += str(i) answer = int(tempStr) return answer ...1) 정수 n의 각 자리 숫자들을 쪼개서 리스트에 넣어

자릿수 더하기(프로그래머스 level1, 파이썬) [내부링크]

프로그래머스 자릿수 더하기(프로그래머스 level1, 파이썬) KQNG 2018. 9. 27. 0:14 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 "자릿수 더하기" 입니다. 문제는 다음과 같습니다. 자연수가 주어지면 각 자리 수를 모두 더하면 되는 간단한 문제입니다. 코드는 다음과 같습니다. def solution(n): answer = 0 temp = n while temp != 0: answer += temp % 10 temp = temp // 10 return answer 우선 계속해서 계산할 수를 temp로 함수 인자인 n을 저장해주고 시작합니다. 그 다음 answer에는 10으로 나눈 나머지를 더해주고, temp을 temp를 10으로 나눈 몫으로 바꾸어 저장해줍니다. 이러한 과정을 temp가 0이 될때까지 반복해주면 끝입니다. 이것으로 프로그래머스의 자릿수 더하기 문제풀이를 마칩니다. 수정해야할 사항, 궁금하신 점 등은 댓글또는

시저 암호(프로그래머스 level1, 파이썬) [내부링크]

프로그래머스 시저 암호(프로그래머스 level1, 파이썬) KQNG 2018. 9. 26. 16:46 이웃추가 본문 기타 기능 안녕하세요 다들 추석 연휴는 잘 보내셨는지요?! 추석 기간에도 블로그 방문자수가 30~40명은 되는 걸 보고 열심히 공부하시는 분들이 정말 많구나 생각하며 전 아무것도 안했답니다.... (반성중) 모두들 다시 힘내서 원하시는 바 꼭 이루시길 빌어봅니다! 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 시저 암호 라는 문제입니다. 문제는 다음과 같습니다. 알파벳 대소문자, 공백으로 이루어진 문자열이 있으면 문자열의 각 요소를 n 거리만큼 밀어서 바꾸어주는 방식입니다. 단 z나 Z에 도달하면 a나 A로 바꾸어 주어야 합니다. 코드는 다음과 같습니다. def solution(s, n): answer = '' #...1 alphaLower = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',

소수 찾기(프로그래머스 level1, 에라토스테네스의 체, 파이썬) [내부링크]

프로그래머스 소수 찾기(프로그래머스 level1, 에라토스테네스의 체, 파이썬) KQNG 2018. 9. 20. 14:13 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 소수 찾기 라는 문제입니다. level1에 있는 문제라서 그냥 가볍게 문제를 풀려고 했지만 제출 시 효율성 테스트가 있는 걸로 보아선 에라토스테네스의 체를 적용해야될 것으로 생각됩니다. 문제는 다음과 같습니다. n까지의 숫자를 받으면 1부터 n 까지 몇개의 소수가 있는지를 확인해주는 문제입니다. 이 문제를 풀기 위해선 에라토스테네스의 체 진행 과정을 알아야합니다. (1) 2를 선택하여 2의 배수들을 모두 제거해줍니다. (2) 그 다음 제거되지 않은 숫자를 기준으로 그 숫자의 배수들을 모두 제거해줍니다. 이러한 과정을 수행하였을 때 제거되지 않고 남아있는 숫자가 소수가 되게 됩니다. GIF가 더 자세히 들어간 친절한 설명은 제 블로그에 이전의 올렸던 아래 링크를 확인하시면 됩니

문자열 다루기 기본(프로그래머스 level1, 파이썬) [내부링크]

프로그래머스 문자열 다루기 기본(프로그래머스 level1, 파이썬) KQNG 2018. 9. 19. 16:03 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 문자열 다루기 기본 이라는 문제입니다. 문제는 다음과 같습니다. (문자열의 길이가 4 또는 6) and (모두 숫자)의 논리연산을 하면 되는 문제입니다. 코드는 다음과 같습니다. def solution(s): answer = True is4or6 = True isAllNum = True #...1 sLength = len(s) if(not (sLength == 4 or sLength == 6)): is4or6 = False #...2 for i in range(sLength): if not (s[i] >= '0' and s[i] <= '9'): isAllNum = False #...3 answer = is4or6 and isAllNum return answer ...1) 먼저 문자열 길이

문자열 내림차순으로 배치하기(프로그래머스 level1, 정렬, 파이썬) [내부링크]

프로그래머스 문자열 내림차순으로 배치하기(프로그래머스 level1, 정렬, 파이썬) KQNG 2018. 9. 19. 15:48 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 문자열 내림차순으로 배치하기 라는 문제입니다. 문제는 다음과 같습니다. 주의해야할 사항은 대문자는 소문자보다 작은 것으로 간주한다는 점입니다. 이러한 점을 반영하여 문제를 풀어보았습니다. 코드는 다음과 같습니다. def solution(s): answer = '' #...1 lower = [] upper = [] for i in range(len(s)): if s[i] >= 'a' and s[i] <= 'z': lower.append(s[i]) else: upper.append(s[i]) #...2 lower.sort(reverse = True) upper.sort(reverse = True) #...3 answer = "".join(lower) + "".join(uppe

문자열 내 p와y의 개수(프로그래머스 level1, 파이썬) [내부링크]

프로그래머스 문자열 내 p와y의 개수(프로그래머스 level1, 파이썬) KQNG 2018. 9. 19. 15:18 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 문자열 내 p와y의 개수 라는 문제입니다. 문제는 다음과 같습니다. 대소문자 구분없이 섞여있는 문자열 s를 받아 문자열에 있는 p와 y의 개수를 확인해 개수가 같다면 true, 아니면 false 를 반환해주는 문제입니다. 코드는 다음과 같습니다. def solution(s): answer = True #...1 s = s.lower() strDict = {'p' : 0, 'y' : 0} #...2 for i in range(len(s)): if s[i] == 'p' or s[i] == 'y': strDict[s[i]] += 1 #...3 if strDict['p'] != strDict['y']: answer = False return answer ...1) 우선 문자열을 편하게 비교

문자열 내 마음대로 정렬하기(프로그래머스 level1, 정렬, 파이썬) [내부링크]

프로그래머스 문자열 내 마음대로 정렬하기(프로그래머스 level1, 정렬, 파이썬) KQNG 2018. 9. 19. 15:02 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 문자열 내 마음대로 정렬하기 라는 문제입니다. 문제는 다음과 같습니다. 단어들이 들어있는 strings 리스트가 주어지면 단어의 n번째 인덱스에 위치하는 요소를 기준으로 정렬하는 문제입니다. 만약 n번째 인덱스의 단어가 같다면 기존 단어를 사전순으로 정렬합니다. 코드는 다음과 같습니다. import operator def solution(strings, n): answer = [] tempDict = {} #...1 for s in strings: tempDict[s] = s[n : n + 1] #...2 sortedDict = sorted(tempDict.items(), key=operator.itemgetter(1, 0)) #...3 for i in sortedDict

모의고사(프로그래머스 level1, 완전탐색, 정렬, 파이썬) [내부링크]

프로그래머스 모의고사(프로그래머스 level1, 완전탐색, 정렬, 파이썬) KQNG 2018. 9. 19. 14:18 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 모의고사 라는 문제입니다 문제는 다음과 같습니다. 수포자가 3명 있습니다. 이 수포자가 수학문제를 풀 때 문제를 찍는 패턴이 있습니다. 1번 수포자는 1, 2, 3, 4, 5의 반복 2번 수포자는 2, 1, 2, 3, 2, 4, 2, 5의 반복 3번 수포자는 3, 3, 1, 1, 2, 2, 4, 4, 5, 5의 반복입니다. 이렇게 수포자가 문제를 찍었을 때 모의고사의 답이 주어진다면 가장 높은 점수를 받은 수포자를 출력해주는 문제입니다. 만약 높은 점수가 여러명일 경우 오름차순으로 정렬해줍니다. 코드는 다음과 같습니다. import operator #...2 def countAnswer(answers, x): cnt = 0 score = 0 for i in range(len(ans

K번째수(프로그래머스 level1, 정렬, Sort, 파이썬) [내부링크]

프로그래머스 K번째수(프로그래머스 level1, 정렬, Sort, 파이썬) KQNG 2018. 9. 19. 1:36 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 K번째수 라는 문제입니다. 문제는 다음과 같습니다. 기본적인 배열인 array가 주어지고 이 array를 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때 k번쨰 수를 구하는 문제입니다. commands는 [i, j, k]의 리스트를 여러개 갖고 있는 이중 리스트입니다. 코드는 다음과 같습니다. def solution(array, commands): answer = [] tempArr = [] for i in range(len(commands)): tempArr = array[commands[i][0] - 1:commands[i][1]] tempArr.sort() answer.append(tempArr[commands[i][2] - 1]) return answer 우선 tempAr

두 정수 사이의 합(프로그래머스 level1, 파이썬) [내부링크]

프로그래머스 두 정수 사이의 합(프로그래머스 level1, 파이썬) KQNG 2018. 9. 17. 17:14 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 두 정수 사이의 합이라는 문제입니다. 문제는 다음과 같습니다. a부터 b를 포함한 수까지 모두 더하면 되는 간단한 문제입니다. 주의사항은 a가 b보다 클 경우를 신경써야 한다는 점입니다. 코드는 다음과 같습니다. def solution(a, b): answer = 0 if a > b: a, b = b, a for i in range(a, b + 1): answer += i return answer 앞서 말한 주의사항인 a 가 b 보다 클 경우 a와 b를 바꿔주는 작업을 수행합니다. 파이썬은 스왑을 a, b = b, a 의 방식으로 간단하게 할 수 있습니다. 그 후 a부터 b까지 answer에 누적시켜 더해줍니다. 이것으로 프로그래머스의 두 정수 사이의 합 문제풀이를 마칩니다. 수정해야할

나누어 떨어지는 숫자 배열(프로그래머스 level1, 정렬, 파이썬) [내부링크]

프로그래머스 나누어 떨어지는 숫자 배열(프로그래머스 level1, 정렬, 파이썬) KQNG 2018. 9. 17. 16:46 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 나누어 떨어지는 숫자 배열 이라는 문제입니다. 문제는 다음과 같습니다. 여러 숫자가 들어있는 리스트와 divisor라는 나누는 수가 주어지면 나누어 떨어지는 숫자만 따로 정렬하여 반환하는 문제입니다. 문제를 풀 때 주의해야할 점은 나누어 떨어지는 수가 한 개도 없다면 -1을 반환하는 것입니다. 코드는 다음과 같습니다. def solution(arr, divisor): answer = [] count = 0 for i in arr: if i % divisor == 0: answer.append(i) count += 1 if count == 0: answer.append(-1) answer.sort() return answer count는 나누어떨어진 수가 있는지 체크하는 변수

같은 숫자는 싫어(프로그래머스 level1, 리스트, 파이썬) [내부링크]

프로그래머스 같은 숫자는 싫어(프로그래머스 level1, 리스트, 파이썬) KQNG 2018. 9. 17. 16:24 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 같은 숫자는 싫어 라는 문제입니다. 문제는 다음과 같습니다. 제한사항 중에서 원소의 크기가 0~9 까지라는 점을 유의하시면 좋을 것 같습니다. 코드는 다음과 같습니다. def solution(arr): answer = [] currNum = -1 for i in arr: if currNum == i: continue else: answer.append(i) currNum = i return answer 현재 중복되면 안되는 수를 currNum에 저장합니다. 원소의 크기가 0~9까지이므로 해당되지 않는 -1로 초기화를 해줍니다. 그 다음 arr에 있는 요소들을 하나씩 꺼내가면서 이전의 숫자와 중복되는지 확인합니다. 만약 currNum과 arr의 요소가 같은 값이면 중복이므로 cont

가운데 글자 가져오기(프로그래머스 level1, 문자열, 파이썬) [내부링크]

프로그래머스 가운데 글자 가져오기(프로그래머스 level1, 문자열, 파이썬) KQNG 2018. 9. 17. 15:46 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 가운데 글자 가져오기 라는 문제입니다. 파이썬을 익힐 겸 level1부터 차근차근 풀다보니 포스팅 올리는 주기가 짧아져서 뭔가 재밌네요~! 문제는 다음과 같습니다. 문제는 아주 간단한 문제로 크게 길이가 홀수일 때와 짝수일 때를 나누어서 풀면 됩니다. 코드는 다음과 같습니다. def solution(s): answer = '' length = len(s) mid = length // 2 if length % 2 == 1: answer = s[mid : mid+1] else: answer = s[mid - 1 : mid + 1] return answer 우선 문자열 s의 길이를 length의 저장하고 가운데 값이란 의미로 mid를 length를 2로 나눈 몫으로 저장해줍니다. 홀

2016년(프로그래머스 level1, 날짜 계산, 파이썬) [내부링크]

프로그래머스 2016년(프로그래머스 level1, 날짜 계산, 파이썬) KQNG 2018. 9. 17. 15:23 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 2016년 이라는 문제를 풀었습니다. 문제는 다음과 같습니다. 2016년 1월 1일이 금요일일 때 월 과 일을 입력받아 a월 b일은 몇요일인지 반환하는 문제입니다. 제한조건에 2016년은 윤년이기 떄문에 2월의 일수가 29일이라는 점을 주의해주시면 됩니다. 코드는 다음과 같습니다. def solution(a, b): answer = '' #...1 dict = { 1 : 31, 2 : 29, 3 : 31, 4 : 30, 5 : 31, 6 : 30, 7 : 31, 8 : 31, 9 : 30, 10 : 31, 11 : 30 } #...2 day = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"] count = 0 #...3 if a == 1: co

완주하지 못한 선수(프로그래머스 level1, 정렬, 파이썬) [내부링크]

프로그래머스 완주하지 못한 선수(프로그래머스 level1, 정렬, 파이썬) KQNG 2018. 9. 17. 11:57 이웃추가 본문 기타 기능 이번에 포스팅할 문제는 프로그래머스 코딩테스트 연습의 1단계인 완주하지 못한 선수입니다. 문제의 알고리즘 분류는 해시이지만 조금 다르게 또 간단하게 풀어보았습니다. 문제는 다음과 같습니다. 주어진 조건을 잘 살펴보면 완주선수가 들어있는 completion의 길이는 participant보다 1이 작다고 드러나있습니다. 이말은 즉 완주하지 못한 사람은 딱 1명이라는 말이 됩니다. 또 참가자의 이름은 1개이상 20개이하의 알파벳 소문자로 이루어져 있다는 조건이 있습니다. 이를 이용해 다음과 같이 문제를 풀어보았습니다. def solution(participant, completion): answer = '' participant.sort() completion.sort() completion.append("zzzzzzzzzzzzzzzzzzzz")

소수의 합(프로그래머스 level1, 에라토스테네스의 체) [내부링크]

프로그래머스 소수의 합(프로그래머스 level1, 에라토스테네스의 체) KQNG 2018. 9. 17. 3:33 이웃추가 본문 기타 기능 안녕하세요 오랜만의 포스팅입니다. 그동안 논문 준비, 취직 준비등으로 포스트가 많이 밀렸네요. 이번에 풀어볼 문제는 프로그래머스의 소수의 합이라는 문제입니다. 카카오 블라인드 코딩테스트를 통해 알게된 사이트인데 단계별로 공부하기 유용한 것 같아 당분간 프로그래머스의 level1 문제들을 포스팅할 계획입니다. 문제는 다음과 같습니다. 정수 N이 주어지면 2부터 N까지 모든 소수의 합을 구하면 되는 이해는 간단한 문제입니다. 그러나 이 문제의 경우 단순하게 소수를 구하면 시간초과가 날 것입니다. 따라서 에라토스테네스의 체라는 개념을 아셔야 문제를 풀 수 있습니다. 위에 보이시는 GIF 자료가 에라토스테네스의 체의 진행 과정입니다. (1) 2를 선택하여 2의 배수들을 모두 제거해줍니다. (2) 그 다음 제거되지 않은 숫자를 기준으로 그 숫자의 배수들을

크루스칼 알고리즘(Kruskal, 최소 신장 트리, MST) [내부링크]

알고리즘 설명 크루스칼 알고리즘(Kruskal, 최소 신장 트리, MST) KQNG 2018. 7. 18. 11:49 이웃추가 본문 기타 기능 바로 전 포스트에서 최소 신장 트리를 구현하는 알고리즘인 프림 알고리즘에 이어서 다른 알고리즘인 크루스칼 알고리즘에 대해 간략히 설명해보도록 하겠습니다. 프림알고리즘은 정점을 중심으로 진행해나간다 하였는데 크루스칼 알고리즘은 간선을 중심으로 진행해가는 알고리즘입니다. 다음과 같이 정점들과 각 정점들을 있는 간선의 비용이 주어지면 크루스칼 알고리즘의 진행 과정은 다음과 같습니다. (a) 간선 중 가장 비용이 적은 1을 선택해 1번과 2번 정점을 이어줍니다. (b) 다음 간선 중 가장 비용이 적은 2를 선택해 1번과 3번 정점을 이어줍니다. (c) 다음 간선 중 가장 비용이 적은 3을 선택해 2번과 3번 정점을 이어주려합니다. 그러나 2번과 3번을 이으면 1번 2번 3번 3개의 점이 사이클을 이루기 때문에 그려줄 수 없습니다. 따라서 이어주지 않

프림 알고리즘(Prim, 최소 신장 트리, MST) [내부링크]

알고리즘 설명 프림 알고리즘(Prim, 최소 신장 트리, MST) KQNG 2018. 7. 17. 17:20 이웃추가 본문 기타 기능 이번 포스트에서는 최소 신장 트리를 구현하는 알고리즘인 프림 알고리즘에 대해서 설명해보도록 하겠습니다. 프림 알고리즘은 정점 하나를 기준으로 삼아 연결된 다른 점으로 갈 때 가장 적은 비용이 드는 점과 선으로 이어주며 진행해나가는 알고리즘입니다. 다음과 같은 정점들과 각 정점들을 있는 선들의 비용이 주어지면 Prim 알고리즘의 진행과정은 다음과 같습니다. (a) 우선 1번 정점을 기준으로 삼으면 2번으로 가는 비용은 1, 3번으로 가는 비용은 4, 4번으로 가는 비용은 5가 듭니다. 따라서 가장 비용이 적은 2번으로 선을 그려줍니다. (b) 1번과 2번을 기준으로 모든 점을 가는 비용을 살펴봅니다. 1번에서 3번으로 가는 비용은 4, 1번에서 4번으로 가는 비용은 5 2번에서 3번으로 가는 비용은 2, 2번에서 4번으로 가는 비용은 6이 듭니다. 따라

최소 신장 트리(최소 스패닝 트리, MST, Minimum Spanning Tree) [내부링크]

알고리즘 설명 최소 신장 트리(최소 스패닝 트리, MST, Minimum Spanning Tree) KQNG 2018. 7. 17. 16:41 이웃추가 본문 기타 기능 이번 포스트에선 최소 신장 트리에 대해 설명하겠습니다. 우선 신장 트리는 그래프가 주어지면 만족해야하는 세가지 조건이 존재합니다. 1. 모든 정점을 포함해야 한다. 2. 모든 정점은 직접, 간접적으로 연결되어야 한다. 3. 트리의 속성을 만족해야한다. 따라서 신장 트리는 다음과 그림과 같이 여러개가 존재할 수 있습니다.(발그림 주의) 그 중에서 최소 신장 트리는 간선을 연결할 때 일종의 비용이 든다고 가정하였을 때 가장 적은 비용을 들여 만들 수 있는 신장트리를 의미합니다. 임의로 비용을 준 정점과 간선 그래프의 최소 신장 트리는 다음과 같습니다.(발전한 발그림) 왼쪽의 정점 4개와 비용이 주어진 간선들이 존재할 때 신장 트리를 만들려고 할 때 1, 2, 3의 비용을 들여 선을 3개 그려준 우측 모양의 그래프가 최소

큐와 우선순위 큐(Queue && Priority Queue) [내부링크]

알고리즘 설명 큐와 우선순위 큐(Queue && Priority Queue) KQNG 2018. 7. 17. 16:07 이웃추가 본문 기타 기능 안녕하세요 알고리즘 설명 첫 포스트는 큐와 우선순위 큐입니다. 알고리즘이 아닌 자료구조이긴 하지만 제가 푸는 알고리즘 문제에 종종 쓰이고 알아두면 편리한 것이기 때문에 설명을 해보려고 합니다. 우선 그냥 큐는 선입선출(First In First Out)의 구조로 먼저 넣어준 자료가 먼저 나오게 되는 자료구조입니다. 원통의 한쪽 부분에 물건을 넣고 뽑을 때는 다른쪽 부분에서 꺼낸다! 라고 생각하시면 이해가 훨씬 간편합니다. 큐에서 사용되는 함수는 push, pop, front, empty, size 등이 있습니다. push(element) : 큐에 원소를 추가 pop() : 큐에서 원소를 제거 front() : 가장 앞에 있는 원소를 반환 empty() : 비어있으면 true, 아니면 false 반환 size() : 큐의 크기를 반환 기본적인

[유미마트] 치킨, 육사시미, 맥주 - 강동 인생 맥주, 맥주 맛집 [내부링크]

오늘이 투표로 쉬는날이라 어제 친구를 만나 다녀온 가맥집 [유미마트]를 포스팅하고자 합니다. 유미마트 서울특별시 강동구 진황도로27길 4 유미마트 [영업시간] 일~수: 9:30 - 24:00 목~토: 9:30 - 01:00 [전화번호] 0507-1308-5172 유미마트, 유미벅스 근처에 가면 저런 구조물이 반겨줄거에요! 입구에 들어가면 사장님과 주먹인사, 가벼운 허그를 하고 들어가서 자리에 앉으면 사장님에게 맥주 설명을 들으러 출발하시면 됩니다. 우선 여기는 전국, 심지어는 전세계에서도 찾기 힘든 맥주들이 있는 지점이기도 하고 사장님께서 굉장히 맥주에 해박한 지식이 있으셔서 원하는 맥주의 맛을 말하면 사장님이 주저없이 추천해주십니다. 그대로 믿고 마셔도 아마 맛있을거에요! 친구는 인생 맥주를 맛보고 싶다해서 추천받은 "로렐라이" 저는 고소한 맥주를 먹고싶다 해서 추천받은 "에머비어" 를 마시기로 했습니다. 우선 친구랑 갔기 때문에 둘 다 맛볼 기회가 있었겠죠? 로렐라이 맥주는 정말

[서초동연가 길동점] 전통 육회, 불총 육회 - 강동, 길동 육회 맛집 [내부링크]

친구 따라 강남..이아닌 강동에 가서 먹어본 육회집을 올려볼까 합니다. [서초동연가 길동점]은 체인점인데요 이번에 저는 처음 방문해보았습니다. 서초동연가 길동점 서울특별시 강동구 진황도로 103 [전화번호] 02-471-3326 꽤나 늦은시간에 방문했는데 사람들이 거의 꽉 차있어서 겨우 자리를 잡았어요. 서초동연가 간판과... 잠깐 사람이 없는 틈을 타서 찍은 가게 분위기입니다. (사람 많았는데 왜 내가 찍으려니 없어진거지?...) 아무튼 벽면이 낙서로 가득 차있고, 조명도 은은해서 감성적인 공간이 특징이네요! 기본적으로 자리에 앉으면 나오는 묵사발과 소고기시래기국입니다. 묵사발은 새콤하면서 시원한 맛이었고. 소고기 시래기국은 술먹고 해장국으로 밥 말아먹고 싶을정도로 너무너무 맛있었어요. 중간에 먹다보니 많이 먹어서 사장님이 새 그릇으로 가져다주셔서 너무너무 감사했습니다. 전통 육회와 불총 육회입니다. 전통 육회는 가운데 생강과 파를 썰은게 올라가있고 이쁘게 배를 채썬것과 육회를 주

[2022-07-11] 저녁 7시30분 퇴근 후 운동 [내부링크]

새벽 운동을 열심히 하지 못한 나란 인간... 원인1: 보통 잠을 새벽 1시쯤 자서 일어날 수 없음 원인2: 태어나서 지각은 한번도 안했지만 헬스장은 지각해도 된다는 마인드 따라서 앞으로는 그냥 저녁에 가려고한다. + 회사에서 누군가를 보고 너무 멋져서 열심히 살아야겠다고 생각했는데 일이야 뭐 잘 하니까(대표님 생각도 그럴까?) 그동안 미뤄둔 운동부터 다시 하려고 한다. [오늘 운동] 랫 풀 다운 25kg 5세트 체스트 프레스 25kg 5세트 레그프레스 80kg 5세트 런닝 머신 인터벌 20분 한창 열심히 할 때보다 무게가 5~10kg 이상 줄여서 했더니 그렇게 큰 무리는 없는 것 같다. 레그프레스는 200까지도 밀 수 있지만 갑자기 하면 다칠까봐 80kg 부터 일주일에 10~20씩 늘릴 예정 목적이 지금 근육량을 유지한체 지방을 태우는게 목적이므로 근력운동은 탄수화물 소진용, 유산소 운동의 시간을 차차 늘려야 할 것 같다.

[2022-07-12] 저녁 7시 30분 퇴근 후 운동 [내부링크]

어제랑 별 다를 것 없이 했는데 더 힘들다 괜히 누가 멋있어보인다고 뭐라도 하려다 쓰러지겠다... 그래도 뭐라도 되겠지 [오늘 운동] 스트레칭 5분 랫 풀 다운 25kg 5세트 체스트 프레스 25kg 5세트 레그프레스 90kg 5세트 런닝 머신 인터벌 20분 스트레칭 5분 지금 보니 레그프레스를 어제보다 10kg 더했다... 원래 120정도는 시작 무게로 했으니 서서히 늘려나가면 될 것 같다. 사실 레그프레스에 원판 넣고 빼기 귀찮아서 할만하다 싶으면 그냥 하느라 무게를 크게 신경 안쓰는 편..

[문래 골방] - 돼지 뽈살 구이, 매콤 크림 떡볶이, 복순도가 (문래 맛집, 술집) [내부링크]

안녕하세요. 오늘은 문래에 있는 "골방" 에 다녀왔어요. 문래는 워낙 좁은 골목길 사이사이 맛집들이 많이 있어서 길을 찾기가 힘들지만 어지간하면 맛집이라서 돌아다니다가 간판을 찾고 들어가봤어요! 포스팅을 하기 위해 지도로 찍어보니 가기 어려운 곳은 아니었네요!!! 골방 서울특별시 영등포구 도림로131길 17 골방 1층 [영업시간] 화요일 정기 휴무 월,수,목: 17:00 - 01:00 금: 17:00 - 02:00 토: 16:00 - 02:00 일: 16:00 - 01:00 [전화번호] 0507-1367-6148 외부와 실내 사진이에요. 반대쪽은 사람들이 있어서 못찍었네요. 처음에는 해가 지기 전이라 어두운 편이었는데 점점 밖이 어두워지니 은은한 조명이 딱 분위기를 잡아줘서 좋았어요. 메뉴판이에요! 골방은 주점! 이기 때문에 술을 반드시 시켜야 하는 규칙이 있어요! 참고하시면 좋을 것 같아요. 저는 돼지뽈살구이, 매콤크림떡볶이, 복순도가를 주문했습니다. 먼저 나온 복순도가에요! 이름

[2022-05-25] 새벽 운동 유산소 [내부링크]

오늘은 6시 40분쯤 눈이 떠져서 여유롭게 준비하고 갔다. 헬스장에서 몸푸는 것 보다 집에서 스트레칭 먼저 쭉 하고 가니 20분쯤 도착하여 8시까지 공복 유산소를 하고 왔다. [오늘 운동] 런닝머신 40분 헬스를 시작한게 원래 하긴 했어야하지만 내일 회사 사람들과 풋살 하기전 최소한의 체력을 만들려고 한건데 과연..... 그나저나 발목이 살짝 거슬려서 걱정된다. 조심해야지

[2022-05-26] 성수 실내 풋살장 [내부링크]

오늘은 새벽에 운동을 안하려고 한게 아니라 회사 사람들과 풋살 예약이 잡혀있어서 가지 않았다!!! 10년만에 해보는 축구... 지옥이 있다면 10년만에 풋살을 시키는 곳일까? 2시간 예약이 되어있는데 10분도 안되서 너무 힘들고 30분을 남기고는 다리에 쥐가나서 더이상 뛸 수 없었다... 하지만 포기하지 않고 다음에 강해져서 돌아가야지 성수실내축구장 서울특별시 성동구 성수이로 69 지하에 있는데 시설이 좋았고 에어컨 선풍기도 있어서 크게 답답하지 않았다. 풋살 예약 할 일 있다면 이곳에서 하면 좋을 것 같다.

[팬더마라] 마라탕, 꿔바로우 - 가산, 가디 마라탕 맛집 [내부링크]

안녕하세요 이번엔 가산디지털단지역 마라탕 맛집인 [팬더마라]를 포스팅하려고 합니다. 팬더마라 서울특별시 금천구 가산디지털1로 181 1층 114호 [영업시간] 매일 10:00 - 22:00 [전화번호] 0507-1323-0137 가게 내부입니다. 늦은 시간에 가서 사람이 많지는 않았지만 배달 울림이 계속 울릴 정도로 인기가 많은 집이었어요! 마라탕은 100g당 1,800원으로 저렴합니다. 원하는 야채, 떡, 건두부 등을 자유롭게 넣었는데 아주 저렴해서 기분좋게 먹었던 것 같아요. 볼에 담아 원하는 것들을 입맛대로 담아서 주면 사장님이 양고기를 넣어줄지, 소고기를 넣어줄 지 여쭤보는데 저는 소고기로 먹었어요! 드디어 나온 마라탕! 이라기엔 사장님께 재료를 담아 드린지 1분만에 나왔습니다. 소고기, 숙주, 각종 버섯, 건두부, 분모자 청경채 등 이것 저것 많이 넣어서 맵기는 2단계로 주문했던 것 같아요. 한 국물 떠먹어보니!? 마라탕에 대한 선입견이 있었는데 한국식으로 정말 맛있는 국물

[2022-05-17] 유산소 [내부링크]

어제 등록한 헬스장 오늘 아침 7시에 눈떠보니 정말 가기 싫지만 어제 등록해놓고 안갈 수 없지! 하면서 갔다. 헬스장을 가면서 어제 한 체스트 프레스때문에 상체쪽 근육통이 꽤 있어서 급하게 화, 목은 유산소로 일정 변경. 유산소는 체내에 탄수화물이 없을 때 하면 효과적이라고 하니 오히려 지방을 태우기 좋을지도! 단 아무런 영양소도 없이 뛰면 조금 그러니 생일 선물로 받은 홍삼액 하나 먹고 갔다. [오늘 운동] 러닝머신 40분 쉐이크보드5분 끝나고 요거트에 블루베리, 씨리얼 섞어서 먹어주면서 글 쓰는중. 내일도 화이팅!

[2022-05-18] 채우닭, 실온 보관 닭가슴살 [내부링크]

오늘은 아침에 눈떠보니 운동가기엔 늦어버렸다. 근데 왜 운동일기를 쓰는가? 운동하면 떠오르는 대표적인 연예인 김종국이 먹는것까지 운동이라고 하였기 때문에. 오늘 마침 궁금했던 실온 보관 가능한 닭가슴살이 집에 도착했기 때문이다. 100g이고, 134kcal밖에 하지 않는다. 운동하면 단백질을 먹어줘야 근손실을 막을 수 있는데, 가장 저렴하고 단백질을 쉽게 보충해주는게 닭가슴살이 아닐까 싶다. 채우닭은 실온보관으로 냉장고를 차지하지 않는다는 큰 장점과, 바로 먹어도된다는 장점이 있다. 닭가슴살을 챙겨먹어본 사람은 알겠지만 이 두가지만 해도 엄청난 압도적인 장점이다. 배송된 박스안에 있던 종이, 위에 3개 영역으로 설명되있는 것들을 갤럭시 스캔 기능을 이용해 한번 각각 찍어보았다. 그냥 먹어도 되지만 전자렌지에 돌려 먹는 방법과 맛있게 먹는 팁! 그리고 실온보관이라고 들었을 때 가장 먼저 떠오른 걱정인 방부제에 대한 답변까지 친절하게 적혀있다. 그릇에 덜어먹은 닭가슴살. 오늘은 특별히

[전자방] 전자방 짬뽕 - 성수, 뚝섬 점심, 맛집 [내부링크]

안녕하세요. 오늘은 일을 하다가 점심시간에 회사 근처에 있는 [전자방]이란 곳을 다녀왔어요. 사실 근처에 쭈꾸미집에 갑자기 점심 장사를 그만하는 바람에 어디갈까 하다가 우연히 갔어요. 전자방 서울특별시 성동구 성수일로12길 23 1층 [영업시간] 월: 정기 휴무 화~금: 11시~22시 (14시~17시 브레이크타임 마지막주문21시) 토~일 공휴일: 12시~21시 (브레이크타임 없음 마지막주문 20시) [전화번호] 0507-1365-1193 바깥에서 찍은 가게 모습이에요. 건물 1층 모서리에 위치하고 있어요. 친절하게도 밖에 메뉴판이 표시되어있어요. 저는 전자방 짬뽕 밥을 선택했어요! (8,500원) 자리가 꽉 차있어서 미리 주문을 해놓고 밖에서 5분정도 기다리다가 들어갔더니 앙증맞은 피클과 짜사이? 맞나?.. 가 있었어요. 앙증맞죠? 짐빔 애플 하이볼도 시켰어요! 오늘 같이 일하는 동료 중 한명이 전문연구요원이라 내일 훈련소가서 점심에 소소하게 한 잔 했습니다 맛은 정말 상큼한 탄산음

[2022-05-19] 새벽 7시 근력운동 [내부링크]

어제 늦게일어나서 못가서 그런지 전날 일찍 자버리기 + 아침 6시에 눈떠져서 병적으로 시계확인으로 오늘은 늦지 않게 집에서 몸도 풀고 헬스장으로 직행했다. [오늘 운동] 렛 풀 다운 5세트 가슴운동하는 기구(이름 뭐더라...) 5세트 시티드 로우 5세트 체스트 프레스 5세트 레그 프레스 5세트 레그 컬 5세트 쉐이크 보드 5분 레그 프레스가 2개가 있는데 매번 쓰던 사람의 시간대에 어쩌다보니 내가 하니 다른곳으로 가서 낑낑대는걸 보고 약간의 시간 변경을 해줘야할 것 같다... 소심..

[2022-05-23] 새벽 운동 유산소 [내부링크]

어제 어쩌다보니 집에 도착하지 밤 12시가 넘어 오늘 운동을 갈까 말까 고민했지만 가긴 갔다. 너무 힘들다!!! [오늘 운동] 런닝머신 40분 쉐이크보드 5분 당분간 지방태우기 + 아침엔 힘이 안들어가서 유산소 위주로 할 것 같다. 퇴근하고 집에서 근력을 할지도?!

[카페 오롯(OROT)]뚝섬 프렌치 토스트 플레이트-(뚝섬, 성수 브런치 카페) [내부링크]

안녕하세요 오늘은 [카페 오롯(OROT)]에 방문해서 브런치 먹은 후기를 남겨볼까 해요. 확실히 성수, 뚝섬 근처에 회사로 이직하니 가는 곳마다 핫플레이스같은 기분이에요 카페 오롯 서울특별시 성동구 상원6나길 7 1층 카페오롯 [영업시간] 주중 - 10:00 - 20:00 주말 - 11:00 - 20:00 [전화번호] 0507-1336-2223 [가게 인스타] https://www.instagram.com/cafe.orot_official/ 평소에 근처에서 밥을 먹고 지나가면 저기가 어디지? 어떻게 읽지? 하면서 오로 플러스라고 생각했는데 찾아보니 오롯! 이었어요. 마침 앞에 아스팔트 공사도 오늘 새로해서 가게 앞이 깔끔하게 포장도 됐어요 가게 들어가면 보이는 메뉴판과 자리에요 블로그를 쓰면서 보니 맥 화면을 메뉴판으로 쓰고있었군요?!?! 저는 뚝섬 프렌치 토스트 플레이트를 주문했어요. 여기는 장소가 독특하게 3군데로 분리되어있어요. 주문하는 곳에 있는 자리 (위에 올린 사진) 중간

AI 논문 abstract 게시판 공지 [내부링크]

안녕하세요. KQNG입니다. AI 논문을 하나하나 딥하게 파는것도 좋지만 그런식으로 논문을 공부하다보면 금방 지치기도 하고, 관심있는 주제의 요약본을 가지고 하나하나 기록하다보면 필요할 때 꺼내서 볼 수 있지 않을까 해서 만든 게시판입니다. 직장생활을 하면서 아이디어를 얻기 위해서 이전에 했던 Anomaly Detection, 지금 하고있는 NLP 뿐만 아니라 흥미가 있어보이면 그냥 요약 냅다 적어서 옮겨둘까 해요! 빠르게 요약만 읽어보고 파악하고 싶으신분들 많이 이용해주세요~!

[2022-05-16] 새로운 헬스장 등록 [내부링크]

이사와서 집 바로 옆 건물 지하에 헬스장이 있길래 오늘 쿨하게 라커룸까지 13개월 36만원에 결제 때렸다. 제이휘트니스 서울특별시 동대문구 난계로 252 동양파라빌 B1 제이휘트니스 혹시 모르니 장소 추가..! 여기에요. 신설동 헬스 제이휘트니스. 운동일지를 쓰려고 만든 게시판이기에 헬스장 사진따위는 없다. 오늘은 첫날이라 결제 및 등록하고 오랜만에 운동, 새벽운동이라 살살 해보았다. (사실 그렇게 쎄게 한적이 없다) [오늘 운동] 러닝머신 10분 레그 프레스 5세트 렛풀다운 5세트 체스트프레스 5세트 레그익스텐션 5세트 쉐이크보드 5분 으 정말 운동은 재미가없지만 해야한다. 운동하는 모든사람 화이팅!

[A Unified Approach to Inter Preting Model Prediction] 요약 - SHAP, XAI, 설명 가능한 인공지능 [내부링크]

논문 링크: https://arxiv.org/pdf/1705.07874.pdf 안녕하세요. 오늘은 설명 가능한 인공지능 XAI(eXplainable Artificial Intelligence) 의 라이브러리로 쓰이고 있는 SHAP의 논문을 요약만 소개하고자 합니다. [요약] 모델이 특정 예측을 하는 이유를 이해하는 것은 많은 응용프로그램에서 예측의 정확도만큼 중요할 수 있다. 하지만 대규모로 구성된 최신 데이터셋에 대한 높은 정확도는 전문가도 해석하기 어려운 앙상블 또는 딥러닝 모델에 의해 달성되기 때문에 정확도와 해석 가능성 사이의 간극이 발생한다. 최근 사용자가 복잡한 모델의 예측을 해석하는 데 도움이 되는 다양한 방법이 제안되었지만, 방법들이 어떻게 관련되어 있고 어떤 방법이 다른 방법보다 선호되는지 불분명하다. 이러한 문제를 해결하기 위해 SHAP(SHapley Additive exPlannations)을 제안한다. SHAP은 특정 예측에 대한 중요도 값을 각 요소에 할당한다

[한국수] 장칼국수, 가산디지털단지, 점심 [내부링크]

http://naver.me/G7KZEKd3 한국수 가산디지털점 : 네이버 방문자리뷰 218 · 블로그리뷰 32 naver.me 안녕하세요 점심을 맛있게 먹고오자마자 따끈하게 블로그 올릴까해서 찾아왔습니다. 오늘은 직장근처에 가산디지털단지에서 한국수라는 곳을 가보았습니다. 외관 입구사진 딱 찍을걸 그랬네~했는데 위에 링크에 자연스레 나와서 기분이 좋네요. 우선 음식 전 가게 내부 사진들이에요~! 앞에 잘린 글자는 생! 하나입니다. 국수 뿐 아니라 닭도리탕하고 꼬막 비빔밥같은 밥 종류, 돼지 국밥도 팔고 있어요 물이 신기하게 플라스틱 보틀에 깔끔하게 테이블마다 2개씩 놓아져있어요. 가게 자체에서 풍기는 이미지가 정갈함 그 자체입니다. 밑반찬은 콩나물 무침, 깍두기, 배추김치 3개뿐인데 진짜 맛있었어요. 콩나물 무침 제가 집에서 해도 저 맛이 날지 모르겠지만 도전해봐야겠어요. 오늘 제가 시킨 메뉴는 장칼국수 입니다. (가격 8,000 원) 엄청 큰 그릇에 국물도 가득담아줘서 처음엔 면이

[오유미당 가산센트럴점] 토마호크 돈카츠, 순두부 짬뽕 쌀국수 [내부링크]

안녕하세요 오늘은 [오유미당 가산센트럴점] 방문한 후기에 대해 포스팅 하려고 합니다! 어린이날 알차게 보내기위해 닥터스트레인지 2 예매를 했는데 영화를 볼 땐 보더라도 배고픈 상태로 볼 수 는 없기에 배를 채우러 갔습니다. 오유미당 가산센트럴점 서울특별시 금천구 디지털로10길 69 G10호 [영업시간] 매일 11:00 - 21:30 15:30 - 17:00 브레이크타임 20:40 라스트오더 [전화번호] 02-867-5615 위치는 가산 현대아울렛에서 쭉 걸어오면 있는 가산센트럴 푸르지오시티 상가에 있어요. 가산엔 마리오아울렛, W몰, 현대아울렛 큰 아울렛이 3개가 길건너면 하나씩 있는데 그 사거리에서 걸어서 5분이면 갈 수 있는 음식점입니다! 가산에서 살때는 엄청 가까웠는데 이제서야 오다니 ㅠ.ㅠ 상가 건물이에요. 하얀색 간판이 깔끔해보이는 인상을 줍니다! 포스팅을 하면서 보니 오유미당이 오.유미당 이었군요! 가게를 들어가면 바로 있는 키오스크를 통해서 메뉴를 주문하시면 됩니다! 우

[ㅊㅅㄷ(치읓시옷디귿)] 커피, 타르트, 컵케이크 - 철산 카페 [내부링크]

안녕하세요! 오늘은 [ㅊㅅㄷ(치읓시옷디귿)] 방문한 후기에 대해 포스팅 하려고 합니다. 가게 이름이 상당히 독특합니다! 한글의 자음은 받침으로 자기 자신을 쓴다는 사실도 기억해두시면 좋을 것 같아요^_^ (자연어처리 AI 개발자다운 지식이었다...) 치읓시옷디귿 경기도 광명시 오리로857번길 22 1층 [영업시간] 수, 목 휴무 12:00 - 19:00 주문은 18:20분 까지만 [전화번호] 0507-1331-2852 [가게 인스타] https://www.instagram.com/cafe_chieut/ 위치는 철산역 2번출구에서 5분정도 걸려요! 걸어가다보면 이런데 카페가 있어?! 할법한 곳에 있어요! 잘 찾아가시면 좋을것 같습니다. 큰 간판이 아니라 저렇게 자그마한 입간판이 귀엽게 있으니 확인하시고 들어가면 좋을 것 같아요 가게 내부 사진이에요, 대부분 우드톤인 인테리어의 하얀 깔끔한 벽까지 심플하면서도 고급스러운 분위기입니다. 뭔가 가게에서 나는 커피향과 나무향이 섞여 힐링이 되

[ㅍㅅㄱ(필살기)] 커피 - 성수, 뚝섬 카페 [내부링크]

안녕하세요! 오늘은 [ㅍㅅㄱ(필살기)] 방문한 후기에 대해 포스팅 하려고 합니다. 가게이름이 지난번 올렸던 ㅊㅅㄷ과 상당히 비슷하네요 이런 곳을 일부로 찾기도 힘든데 회사 근처에서 점심식사를 하고 우연히 들렀는데 너무 이뻐서 사진찍어왔어요~! 참고로 ㅊㅅㄷ은 철산 카페답게 철산동이라고 합니다. [지난번 리뷰 보기] 클릭 실수해서 조회수 올라라!!! https://blog.naver.com/h0609zxc/222726449895 [ㅊㅅㄷ(치읓시옷디귿)] 커피, 타르트, 컵케이크 - 철산 카페 안녕하세요! 오늘은 [ㅊㅅㄷ(치읓시옷디귿)] 방문한 후기에 대해 포스팅 하려고 합니다. 가게 이름이 상당... blog.naver.com 필살기CAFE 서울특별시 성동구 상원길 48-1 초록대문 [영업시간] 11:00 - 21:00 주문은 20:30 까지만 [전화번호] 02-498-9598 [가게 인스타] https://www.instagram.com/psgcoffee_/ 제가 회사는 성수역에서

패스트캠퍼스로 공부하기(광고 저어어얼대 아님) [내부링크]

1일 1포스트를 하려고 뭘 올릴까 생각하다가 평소에 어떻게 공부하는지를 공유하면 좋겠다 생각해서 올려봅니다. 우선 저는 전공은 게임으로 게임학이론이라던가, 게임 기획도 배우지만 컴퓨터공학과 비슷하게 프로그래밍 언어도 배우는 학과를 졸업하고 직업은 인공지능, 데이터분석 쪽 일을 하고있어요. 아무래도 전통 컴퓨터공학 학생보다는 CS라 불리는 지식이 부족한편이기도하고 그렇다고 인공지능, 데이터 분석쪽이 아무리 역사가 깊지는 않다고 하나 기본적인 수학과 통계에 대한 지식도 부족하다 생각하여 어떻게 공부할지 많은 고민을 하던 중 인강이라는 방법을 선택했고 그중에서도 평생 수강이 가능한 패스트캠퍼스의 인강들을 활용하였습니다. 아무래도 모든 직업이 그렇지만 배우기를 멈추면 발전이 없고, 다음 단계로 가기는 어려운것 같아요! 저는 지금까지 9개정도의 강의를 구매해서 들었네요. 전부 수강을 100프로 듣지는 않았지만 필요하거나 궁금했던 지식이 있으면 구매해서 듣는 편이에요. 저는 주로 인공지능, 데

AI 공부하기 좋은 유튜브 채널 추천(고려대 산업경영학부 DSBA 연구실) [내부링크]

안녕하세요. 오늘은 AI를 공부하기 좋은 유튜브 채널을 추천하고자 합니다. https://www.youtube.com/channel/UCPq01cgCcEwhXl7BvcwIQyg 고려대학교 산업경영공학부 DSBA 연구실 고려대학교 산업경영공학부 Data Science & Business Analytics Lab입니다. www.youtube.com 고려대 산업경영공학부 학생분들이 세미나를 준비하면서 올린 자료들도 있고, 교수님이 직접 강의한 자료도 올라와있습니다. 시계열 예측, Anomaly Detection 뿐만 아니라 정말 다양한 분야의 내용들이 올라오고 있는 것 같습니다. 반드시 읽어야 할 논문들 소개도 되어있어서 혼자서 논문 읽기 버겁다면 영상으로라도 보는게 좋을 것 같아요. 참고로 저는 이 유튜브를 통해서 USAD라는 모델을 접하게 되었고, 제가 회사에서 담당하는 실무 프로젝트에 해당 모델을 적용해보기도 했어요. 많은 분들이 인공지능을 하려면 대학원을 가야하나 고민하실 것 같은

그 해 우리는 (드라마 추천) [내부링크]

오늘은 주말이라 푸욱~~ 쉬는겸 드라마를 보다가 드라마를 정말 많이 챙겨보는 저에게도 인생드라마로 꼽을만한 드라마가 나와 추천드리고자합니다. 제목은 그 해 우리는! 예전에 전교 1등과 전교 꼴등이 같이하는 다큐에서 아이디어를 얻은 것 같아요. 그해 우리는이라는 드라마도 전교 꼴등인 최우식(최웅)과 김다미(국연수)가 10년전 찍은 다큐멘터리를 통해 가까워지고 멀어지고 다시 만나는 이야기들이 그려집니다. .... 공부 어려운 거 맞지... 제가 생각한 그 해 우리는 드라마의 장점 - 주인공들의 나레이션으로 전해지는 감정 묘사가 책을 보는것처럼 자세히 묘사된다. - 약속의 8화..(약스포)에서 봄, 여름, 가을, 겨울의 색채감을 전부 느낄 수 있다. - OST가 너~~~무 좋다. 최애곡은 샘킴의 여름비..(얼마나 음원이 안나오던지....) - 주인공들의 연기력! 너무너무 최고 ... 둘다 은근히 발음도 귀여운거같기도... - 사연있는 서브 등장 인물들 - 드라마가 끝나고 나오는 에필로그

개미는 오늘도 뚠뚠(주식 초보 추천 예능) [내부링크]

안녕하세요 오늘의 포스팅은 개미는 오늘도 뚠뚠 이라는 주식 예능입니다. 많은 사람들이 주식에 대한 관심사가 높아지면서 만들어진 예능인 것 같아요. 카카오TV에서 제작한 웹 예능이고 저는 넷플릭스에서 시즌1을 보고있어요. 김가영 기상캐스터님과 딘딘, 노홍철 세분이 나옵니다. 김가영님은 주식거래를 한번도 해본 적 없는 분 딘딘은 절대 따라하면 안되는 단타 거래를 주로 하는 분 노홍철님은 13년동안 주식했지만 열심히 돈을 잃은 분입니다. [출처: 구글 이미지] 주식을 모르고 투자하면 도박이라는 말이있어 저는 현재까지는 공부만하고있지 직접 투자는 본격적으로 하지는 않았는데요 이 예능에서는 PER PBR EPS같은 용어와 재무재표를 봐야하는 이유, 차트보기 등 초보들이 이해하기 쉽게 설명해주어 기본기를 갖출 수 있게 해주는 예능인 것 같습니다. 사실 주식과 관련된 책들이 엄청 많은데 책들을 접할 때 용어나, 기본적인 개념들도 모르면 읽기 힘든 경우가 있어서 가벼운 마음으로 예능을 보면서 우선

신규 아이디 추천(python, level1) [내부링크]

안녕하세요, 프로그래머스에 있는 코딩테스트 연습문제 중 2021년 카카오 블라인드 채용 테스트 문제인 신규 아이디 추천을 풀고 포스팅 해보려합니다. 푸는 방식이 사람마다 다양하니 참고만 하시면 될 것 같습니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오 는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기( - ), 밑줄( _ ), 마침표( . ) 문

숫자 문자열과 영단어(python, level1) [내부링크]

안녕하세요 오늘은 프로그래머스에 있는 코딩테스트 연습문제중 2021년 카카오 채용연계형 인턴십 문제에 출제되었던 숫자 문자열과 영단어 라는 문제를 가져왔습니다. https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s 가 매개변수로 주어집니다. s 가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성... programmers.co.kr 숫자를 아라비안

키패드 누르기(python, level1) [내부링크]

안녕하세요. 오늘은 프로그래머스에 있는 level1 문제 중 2020년 카카오 인턴십 문제에 출제되었던 "키패드 누르기" 라는 문제를 풀어보려 합니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1 , 4 , 7 을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3 , 6 , 9 를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2 ,... programmers.co.kr 문제

부자 아빠 가난한 아빠 (돈과 관련된 책) [내부링크]

블로그를 어느정도 다시 하기로 마음 먹었는데 일부로 프로그래밍 코드를 풀고 시간을 매일 투자하기엔 어려운 감이 있어 요즘 뭐하는지에 대해서도 적어보려 한다. 열심히 사는 친구가 돈에 대해서 조금 쉽게 알게해주는 책이라고 선물로 주어 읽어보고 있다. 우선 그동안 학교를 열심히 다니고 직장생활도 하고있는 사회 초년생이지만 스스로 생각하기에 돈에 대해 무지하다고 생각하여 선물받은지 1년도 넘은 책을 새해 기념으로 읽기 시작했다. 결론부터 말하자면 읽기 정말 잘했다. 물론 표지에서 알 수 있듯 20년이 지난 책이지만 부자 아빠 (친한 친구의 아빠)와 가난한 아빠(친 아빠)를 대조적으로 보여주며 부자인 사람들이 가지고 있는 생각, 돈에 대한 생각을 이해하기 쉽게 전달해 주었다. 이 책을 보고 금융 지식을 빨리 공부해야겠다라는 생각에 책 한권을 더 샀는데 지금 말하면 블로그에 올릴거리가 하나 줄어드는 것 같으니 다음에 소개하고.... 요지는 "아는것이 힘이다" 라는 말이 어느 분야에서도 통하고

LSTM-Based VAE-GAN for Time Series Anomaly Detection [내부링크]

안녕하세요, 이번에 AI 스터디를 위해 준비한 내용을 블로그에도 공유해보려 합니다. 시계열 예측에서 이상감지 하는 방안들을 찾던 중 알게 된 논문이고, LSTM, VAE, GAN에 대한 내용을 접해보셨다면 개념자체를 이해하시는데는 크게 어렵지 않으실 겁니다. (사실 어려워요 저도 잘 모르겠어요 ... ㅠ) 논문 요약 부분입니다. 사전에 시계열 이상감지에 쓰인 기법들에 대해 간략히 소개합니다. GAN 기반 시계열 이상감지랑 비교를 많이 합니다. Mapping 부분을 인코더로 대체하는게 이 논문의 핵심입니다. LSTM-Based VAE-GAN 구조입니다. 각각 Encoder, Generator, Discriminator가 하는 역할을 간략하게 볼 수 있습니다. Encoder, Generator, Discriminator의 역할 Loss 설명 Anomaly Score 계산 방법 모델 알고리즘 과정 F1 Score를 이용한 다른 모델과의 성능 비교 이상 감지 과정의 소요 시간 비교 Late

Anomaly Detection (이상탐지) 개요 [내부링크]

안녕하세요. 오랜만에 포스팅하네요. 이번에 회사 업무 겸 이상탐지 쪽으로 논문들을 쭉 팔로우 하려고 합니다. 아마 출처 및 참고 사이트에 적어둘 고려대 일반대학원 산업경영공학과 강의 유튜브를 많이 참고하고 추가적으로 제가 좀 더 궁금하거나 이해가 안되는 부분을 덫붙인 자료가 주가 될 것 같습니다. 만들어둔 자료 슬라이드를 올려둘테니 궁금한 점 있으시면 언제든지 댓글 부탁드려요. 개요니까 이번엔 가볍게 봐주시면 될 것 같습니다. 일반화가 너무 강한 경우 수박을 사과로 인식할 수 있고, 구체화가 너무 강한 경우 초록색 사과를 사과가 아닌 비정상으로 인식할 수 있다는 의미의 슬라이드입니다. [출처 및 참고 사이트] https://www.youtube.com/watch?v=ECgI1YVQpY8 고려대학교 일반대학원 산업경영공학과 강의 http://docs.iris.tools/manual/IRIS-Usecase/AnomalyDetection/AnomalyDetection_202009_v01.

USAD : UnSupervised Anomaly Detection on Multivariate Time Series (KDD, 2020) [내부링크]

안녕하세요, 이번 포스팅에서는 여러가지 Anomaly Detection 방법 중 AutuEncdoer에 GAN에서 사용되는 적대적 학습을 접목시켜 제안한 논문을 소개하려고 합니다. 역시나 저보다 훨~~~씬 정리가 잘되어있는 자료들과 영상도 있으니 출처, 참고 사이트에서 보시면 더 자세한 내용을 아실 수 있습니다. 그럼에도 궁금하신 사항 있으시다면 댓글 달아주세요! 아는 선에서 최대한 친절하게 답변 해드리도록 하겠습니다. [출처 및 참고 사이트] 논문: USAD : UnSupervised Anomaly Detection on Multivariate Time Series Julien Audibert, Pietro Michiardi, Frédéric Guyard, Sébastien Marti, Maria A. Zuluaga, KDD 2020 고려대학교 USAD 세미나 내용 https://www.youtube.com/watch?v=gCleQ9JxibI model collapse, non-c

로또의 최고 순위와 최저 순위(Python, Level1) [내부링크]

안녕하세요. 정말 간만에 알고리즘 관련 포스팅을 합니다. 직장을 다니면서 너무 멀어지는 느낌이 있어서 형식에 얽매이지 않고 간단한 문제들부터 차근차근 올리는데 의미를 두고 포스팅할까 합니다. 문제는 다음과 같습니다. https://programmers.co.kr/learn/courses/30/lessons/77484?language=python3# 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45 (이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매

시계열 예측(TensorFlow.org 예제) 소개 [내부링크]

AI로 기상을 예측하는 업무를 회사에서 하고 있는데 텐서플로우 사이트에서 제공하는 예제도 기상 데이터라 한번 처음부터 살펴보았다. 사이트에 정리가 엄청 잘되어있고, 시계열 예측 뿐 아니라 모든 분야에 대해 친절한 가이드가 있으니 적극적으로 활용해볼 수 있는 사이트같다. 단 기계가 번역한 한글자료여서 조금씩 생각해볼 필요가 있는게 약간의 단점이다. 살펴본 후기로는 텐서플로우에서 직접 올린 코드인만큼 코드가 정갈하다는 느낌이 들었고, 시간 데이터를 하루 중 시간, 연 중 시간으로 바꾸는 부분, 풍향 풍속을 통해 바람의 벡터 분포를 구하는 부분 등 데이터를 가공하는 방법을 알 수 있었다. 또 실제 작업하는 데 머리로는 아는데 용어가 다소 천차만별이었던 단일 스텝 모델, 다중 스텝 모델, 싱글샷 모델, 자기 회귀 모델등에 대한 개념이 잡힌 것 같다. https://www.tensorflow.org/tutorials/structured_data/time_series?hl=ko 시계열 예측 |

RNN 기본 구현(Tensorflow, Keras) 참고자료 소개 [내부링크]

이번 포스팅에서는 RNN 기본 형태로 구현한 코드들이 있는 사이트를 소개하고자합니다. 사실 실제로 사용하고 있고, 알고 있는 내용이지만 블로그를 위해 또 점점 더 어려운 자료들을 쌓아두고 필요할 때 한번 더 볼 수 있기 위해 포스팅을 하고자 합니다. one to one, one to many, many to one, many to many 같은 다양한 형태들에 대해서 Tensorflow, Keras로 구현한 간단한 예제들이 담긴 사이트 2개를 가져왔습니다. https://yjjo.tistory.com/32 RNN Tensorflow + Keras 이번 포스팅은 Tensorflow의 keras를 이용하여 RNN의 다양한 구조를 구현해보는 것이 목표입니다. RNN에는 크게 세 가지 방법이 있는데 simple RNN, LSTM, GRU가 있습니다. 이번 실습은 simple RNN을 이용하여 man.. yjjo.tistory.com 먼저 위 사이트는 입력, 출력 구조를 명시적으로 잘 보여주

Activation Function(활성화 함수) 참고 자료 소개 [내부링크]

딥러닝에서 활성화 함수는 값의 활성, 비활성을 결정하는 중요한 요소이다. 어떤 활성화 함수를 쓰느냐에 따라서 학습의 결과가 달라질 수 있다. 따라서 이번 포스팅에서는 아무런 생각 없이 ReLU를 일단 쓰고 보는 나 자신을 반성하며 기본적인 활성화 함수와, 발전된 활성화 함수를 정리한 사이트를 소개하고자 한다. https://ichi.pro/ko/dib-leoning-eseo-al-aya-hal-7-gaji-ingiissneun-hwalseonghwa-hamsuwa-keras-mich-tensorflow-2wa-hamkke-sayonghaneun-bangbe-43657675202534 딥 러닝에서 알아야 할 7 가지 인기있는 활성화 함수와 Keras 및 TensorFlow 2와 함께 사용하는 방법 인공 신경망 (ANN)에서 활성화 함수는 현재 뉴런에 공급되는 입력과 다음 레이어로가는 출력 사이의 수학적 "게이트"입니다 [1]. 활성화 기능은 딥 러닝의 핵심입니다. ichi.pro 다소

AI 참고 자료 공지사항 [내부링크]

AI 참고 자료 부분에는 제가 공부한 내용 또는 알고 있는 내용을 정리해서 올리는 게시판 성격보다는 공부 할 내용, 또는 했으나 나중에 다시보고 싶은 내용이 있는 사이트를 추천해서 올리는 방식입니다. 정리를 하는 정성은 없지만 잘 정리되어있는 글을 공유하고자 해요~! 모두 열심히 공부해서 좋은 실력을 얻기 바라겠습니다. 화이팅!>_<

[Attention, 어텐션] Neural Machine Translation by Jointly Learning to Align and Translate [내부링크]

Attention에 대해 공부하다보니 어느정도 블로그에 간략하게 올려볼까 생각이 들어 포스트해봅니다. 이 글을 보고 대략적으로 감만 잡고 참고한 링크들을 살펴보면 더 이해가 잘 되지 않을까 생각합니다. [Attention 등장 배경] - 문장과 같은 순서가 중요한 sequence data에는 RNN 계열 모델이 많이 사용됨 - 앞의 데이터와 거리가 멀어질수록 예측 정확도가 떨어지는 long-term dependency problem이 존재 - 위의 문제를 해결하기 위해 LSTM, GRU 등이 등장 -> 그러나 완벽하게 이 문제를 해결하지는 못함 - RNN에 기반한 seq2seq 모델의 대표적인 문제점 2가지 > 1. 하나의 고정된 크기 벡터에 모든 정보를 압축하려다보니 정보 손실이 발생 > 2. 고질적 문제인 기울기값이 사라지는 문제(vanishing gradient)가 존재 [- 이를 해결하고자 Attention 메커니즘 등장 -] [Attention 아이디어, 개요] - 디코더에

[토끼정] 토끼정 카레 + 카츠 추가, 용산 아이파크몰 맛집 [내부링크]

KTX를 타고 출장을 갈 일이 생겨 용산역에서 먹은 점심을 포스팅 하려고합니다. 이번에 포스팅할 맛집은 [토끼정] 이라는 용산 아이파크몰 음식점입니다. 무엇을 먹을지 같이 출장간 동료와 고민을 하며 이리저리 방황 하던 중 저희를 유혹하는 외부 메뉴판을 발견하였습니다. (가격이 음식점 밖에 써있다는 것은 상당히 중요한것 같아요...!!) 어쩌다보니 저는 카츠 종류만 두 번 연속 올리는 카츠 매니아가 된 것 같지만 사실 고기종류는 뭐든지 다 맛있고 맛없기 힘드니까 선택한 것 아닐까 싶습니다. 가게 내부입니다. 보통 가게에서는 많은 손님을 받기 위해 테이블이 따닥따닥 붙어서 답답함을 느끼게 하는 곳도 있는데, 이곳은 자리마다 꽤나 간격이 넓어서 좋았던 것 같습니다. 제가 주문한 토끼정 카레 + 카츠 추가입니다. 가격은 12,500원입니다. 카레는 안 매운맛 / 보통 / 매운맛으로 나뉘어있어서 저는 보통 맛을 시켰습니다. 꽤나 매운음식을 보통 사람에 비해 나쁘지 않게 잘 먹는 편이어서 그런

[전문연구요원 훈련소 후기(3주)] - 입소 + 1주차 [내부링크]

안녕하세요 오랜만에 글 남기게 되었습니다. 전문연구요원으로 회사를 다니던 중에 3주 훈련소를 다녀오게 되어서 정보도 드릴겸 후기를 남기고자 블로그를 올리게 되었습니다. 저는 2월 18일 입소해서 25 교육연대 12 중대 2소대 1분대 에 배정받아 3주를 보내게 되었습니다. [제가 챙긴 입소 준비물] - 파랑: 필수/ 주황: 애매 / 빨강: 불필요 짐은 무조건 캐리어, 큰 캐리어에 담아가는게 좋다. 캐리어가 없으면 사라. 무조건 안그러면 나올때 자체 행군을 해야할 것이다. - 로션(얼굴, 피부 공용), 바디워시: 단 플라스틱 병으로 되어야 함, 유리 X - 검정 비닐봉투 꽤 큰거: 나중에 젖은 물품 또는 구두약같은거 담기 좋음 - 물티슈: 여러모로 쓴다. 유용 매우 유용 - 무릎, 팔꿈치 보호대: 각개전투때 딱 한번 썼는데 다이소꺼 써서 사실 안했어도 됐을 것 같음 - 깔창: 군화에 사용했는데 심리적으로 안정감을 주긴 한다. 비교를 안해서 효과가 좋은지는 모르겠다. - 보조배터리: 3

[전문연구요원 훈련소 후기(3주)] - 2주차 [내부링크]

지난번 입소 + 1주차에 이어서 2주차 일정을 포스팅 하려고한다. 사실 3주 과정이지만 여기서 어떻게 보내는지 읽어보면 들어가는게 그나마 덜 막막한 느낌이 들지 않을까해서 공유를 계속 해보고자 한다. [8일차-2/26(금)] - 총기 분해 결합, 화생방 일정(식사는 5점 만점) - 오전 6시: 기상 - 오전 6시 30분: 아침점호 - 오전 7시: 아침 [밥, 김치, 애호박볶음, 소고기우엉조림, 김치콩나물국 / 2점] - 오전 9시: 중대장 설문지 작성 > 불만사항들을 적어낸다. 당장 해결할 내용보단 다음 기수를 위해서 준비해주겠다고 답변은 해주신다. - 오전 11시: 총기분해결합 테스트 > 분대에서 1등으로 합격했다. 시간 제한이 기억은 안나지만 현역보다 꽤 널널하다. - 오후 12시: 점심 [밥, 고등어 감자조림, 김치, 고추장멸치볶음, 고추장찌개 / 3.5점] - 오후 2시: 화생방 훈련 및 테스트 > 상황이 설정되고 방독면을 빠르게 쓰는 훈련 및 테스트다. 12초? 정도였던 것

[전문연구요원 훈련소 후기(3주)] - 3주차 + 후기 [내부링크]

원래는 시간이 날 때 천천히 포스팅을 하려했으나 이번주 목요일에 또 가시는 분이 계시다하여 약속이 있어 늦게들어왔음에도 불구하고 마지막 포스팅을 올리고자한다! (생색 ...) [15일차-3/5(금)] - 각개전투 + 행군 일정(식사는 5점 만점) - 오전 6시: 기상 - 오전 6시 30분: 야외 점호 > 행군이 있기 때문에 군장을 모두 갖추고 자갈밭에서 진행 - 오전 7시: 아침 [밥, 소고기뭇국, 김치, 찜닭, 시금치무침 / 3점] - 오전 9시: 3km 행군 (절반) - 오전 10시 30분: 각개전투 장소 도착 - 오전 11시: 점심 [전투식량(쇠고기 고추장 비빔밥 + 참치 / 1.5점] > 전에 부식으로 받은 참치를 아껴두다가 이날 먹음. 지나가던 소대장이 신기해하면서 참치를 아껴둔 나에게 진정한 승리자라고 웃으며 말하셨다,,, 참치넣어도 맛없어요!!!! - 오후 12시: 각개전투 시작, 시범, 1차, 2차 각개전투 테스트 > 총 밥아야하는 합격증이 7개인데 1차때 6개를 받아

HDFS 구조[6] 보조 네임노드(하둡) [내부링크]

이번 포스팅에서는 HDFS의 보조 네임 노드 역할을 알아보도록 하겠습니다. [보조 네임노드 (2차 네임 노드)] - 네임노드가 메타테이터를 메모리에 담고 처리하는데 만약 서버가 리부팅되면 사라질 수 있다. HDFS는 이러한 점 때문에 editslog와 fsimage라는 두 개의 파일을 생성한다. - editslog: HDFS의 모든 변경 이력을 저장 - fsimage: 메모리에 저장된 메타데이터의 파일 시스템 이미지를 저장한 파일이다. -만약 editslog가 커지면 fsimage를 만드는데 시간이 많이 소요되게 된다. 이러한 문제를 해결하기 위해서 보조 네임노드가 있다. - 보조 네임노드는 fsimage를 갱신해준다. 이러한 작업을 체크포인트라고 한다. 그래서 보조 네임노드를 체크포인팅 서버라고도 한다. - 보조 네임노드는 네임노드의 백업이 아니고 단순히 fsimage를 줄여주는 역할만 한다. - fsimage가 너무 커서 네임노드가 메모리에 로딩되지 못하는 경우를 예방하기 위해

뉴럴 네트워크 구조 간단 요약[1] [내부링크]

이번 포스트에서는 SK-T-Brain 페이스북 페이지에 2016년에 올라왔던 게시물을 통해 여러가지 뉴럴 네트워크들의 구조를 간단하게 훑어보도록 하겠습니다. 먼저 설명에 사용되는 뉴런의 종류들입니다. 색과 안의 모양에 따라 용도가 다르니 참고하시며 살펴보면 좋을 것 같습니다. [Feed Forward Neural Network, FFNN] - 가장 직관적인 구조 - 같은 레이어 내에 있는 셀들끼리는 연결되어 있지 않고 인접한 두 레이어 간 Fully Connected - 입력과 정답을 이용한 역전파 알고리즘을 이용해 학습, 지도학습이라 하는 기계학습의 한 종류 - 역전파 알고리즘은 정답과 네트워크를 통해서 나온 출력 간의 차이를 오류로 사용 - 이론적으로는 입력과 출력간의 어떠한 관계도 모델링 가능 - 하지만 현실적으로는 사용이 제한적이며, 보통 다른 네트워크 구조와 결합하여 사용 [Radial Basis Function, RBF] - 입력, 은닉, 출력 계층 모든 것이 Feed F

뉴럴 네트워크 구조 간단 요약[2] [내부링크]

바로 전 포스트를 이어서 SK-T-Brain 페이스북 페이지에 2016년에 올라왔던 게시물을 통해 여러가지 뉴럴 네트워크들의 구조를 간단하게 훑어보도록 하겠습니다. 먼저 설명에 사용되는 뉴런의 종류들입니다. 색과 안의 모양에 따라 용도가 다르니 참고하시며 살펴보면 좋을 것 같습니다. [Autoencoders, AE] - 기본적인 아이디어는 정보를 압축할 때처럼 encode 한다는 것 - 네트워크는 항상 모래시계 같은 구조, 입력 계층과 출력 계층보다 은닉 계층이 더 작음 - Autoencoders는 항상 중간 계층을 기준으로 대칭 - 입력 정보가 가장 많이 압축되는 중간에 위치한 레이어가 가장 작음 - 입력 계층부터 중간까지는 정보를 encode 하고, 중간부터 출력 계층까지는 decode 함 - 학습시에는 네트워크의 출력 값과 입력 값의 차이를 역전파 - 네트워크 구조뿐만 아니라 파라미터 값들도 대칭적으로 만들어질 수 있음 [Sparse Autoencoders, SAE] - AE는

뉴럴 네트워크 구조 간단 요약[3] [내부링크]

바로 전 포스트를 이어서 SK-T-Brain 페이스북 페이지에 2016년에 올라왔던 게시물을 통해 여러가지 뉴럴 네트워크들의 구조를 간단하게 훑어보도록 하겠습니다. 먼저 설명에 사용되는 뉴런의 종류들입니다. 색과 안의 모양에 따라 용도가 다르니 참고하시며 살펴보면 좋을 것 같습니다. [Recurrent Neural Networks, RNN] - 기본적인 뉴럴 네트워크에 시간축이 더해진 형태 - 순차적인 입력에 대해서 인접한 입력간의 연결고리를 만들어주어 시간을 따라 정보가 전달되도록 함 - 이전 레이어의 입력뿐만 아니라 이전 데이터에 대한 현재 레이어 출력 값도 입력으로 사용 - Vanishing Gradient Problem 문제가 존재 [Long Short Term Memory, LSTM] - 게이트 및 memory cell 도입을 통해 Vanishing Gradient 문제를 해결 - memory cell과 입력, 출력, 망각 게이트로 구성 - 게이트들의 기능은 흐름을 막거나

맵리듀스(MapReduce)의 이해 [내부링크]

이번 포스팅에선 하둡을 이루는 주요 구성요소인 HDFS와 맵리듀스 중 맵리듀스에 대하 간략하게 이해해보도록 하겠습니다. [맵리듀스] 맵: 입력 파일을 1줄식 읽어서 변형한다. 리듀스: 변형된 결과(맵의 결과)를 집계한다. 위에서 보듯 맵리듀스는 맵과 리듀스로 구성되어 있습니다. 각각 어떤 역할을 하는지 아래 그림을 통해서 설명해보도록 하겠습니다. Good Morning John 이라는 문장이 적힌 파일 1개와, Good Night John 이라는 문장이 적인 파일 1개가 있습니다. 맵을 통해서 하고싶은 것은 문장에 있는 각 단어의 등장 횟수를 표시하도록 변형하는 것입니다. 따라서 Good Morning John이라는 문장을 Good 1 / Morning 1 / John 1 이런식으로 변형해주었고 Good Night John도 마찬가지로 Good 1 / Night 1 / John 1 형태로 변형해주었습니다. Reduce는 Map을 거쳐 나온 파일들을 하나로 합쳐 집계하는 역할을 합니다

HDFS 구조[4] 파일 읽기(하둡) [내부링크]

이번 포스팅에서는 HDFS에서 파일 읽기에 대해서 정리했습니다. [HDFS 파일 읽기] - 클라이언트에서 네임 노드의 입력 스트림 객체(DFSInputStream)를 통해 스트림 객체를 생성한다. - 생성된 스트림 객체를 이용하여 기본 블록의 10 배수 만큼 조회한다. - 클라이언트 스트림 객체에서 블록 리더기를 생성한다. - DFSInputStream은 파일을 모두 읽을때까지 블록을 조회한다. 모두 읽었다면 close를 통해 닫아야 한다. DFSInputStream을 생성하고 클라이언트가 반환 받는 과정입니다. 1. 스트림 요청 > open() 메서드를 호출해 스트림을 요청합니다. 2. DFSClient에게 스트림 생성 요청 > 마찬가지로 open() 메서드를 호출해 DFSInputStream 객체를 생성합니다. 3. 읽어오기 위한 파일의 블록 위치를 요청합니다. > getBlockLocataion() 메서드를 호출해 파일 블록 위치를 요청합니다. 4. 블록의 위치 값을 반환해줍니

HDFS 구조[5] 데이터 조회(하둡) [내부링크]

이번 포스팅에서는 HDFS에서 파일 읽기에서 데이터를 어떻게 조회하는지 알아보겠습니다. [HDFS 파일 읽기] - 클라이언트에서 네임 노드의 입력 스트림 객체(DFSInputStream)를 통해 스트림 객체를 생성한다. - 생성된 스트림 객체를 이용하여 기본 블록의 10 배수 만큼 조회한다. - 클라이언트 스트림 객체에서 블록 리더기를 생성한다. - DFSInputStream은 파일을 모두 읽을때까지 블록을 조회한다. 모두 읽었다면 close를 통해 닫아야 한다. 1. Client에서 DFSClient에게 읽기 요청을 합니다. : read() 호출 2. DFSInputStream에서 네임 노드로 블록 위치를 요청합니다.: getBlockLocations() 호출 3. 요청 받은 블록 위치를 반환해줍니다. 4. 블록 리더기를 생성합니다. > 이 때 블록이 저장된 데이터 노드가 같은 서버에 있다면 BlockReaderLocal을 생성하고 원격에 있다면 RemoteBlockReader를

HDFS 구조[3] 데이터 전송(하둡) [내부링크]

이번 포스팅에서는 HDFS가 파일 저장 요청을 받은 뒤 어떻게 데이터 전송을 하는지에 대해 정리했습니다. [HDFS 파일 저장] - 클라이언트에서 먼저 네임노드와 통신 과정을 통해 스트림(DFSOutputStream)을 생성한다. - 생성된 스트림을 통해 클라이언트에서 파일을 각 데이터 노드에 전송한다. 이 때 저장한 파일은 패킷단위로 나누어서 저장한다. - 파일 전송이 완료되면 클라이언트에서는 네임노드에서 얻은 스트림을 close하고, 남은 모든 패킷이 flush 된다. - 클라이언트에서 네임노드의 complete 메소드를 호출해서 정상적으로 저장되었다면 true 반환, 파일 저장 완료 지난번에는 스트림 생성 과정에 대해 알아보았다면 이번엔 생성된 스트림을 바탕으로 데이터 노드에 어떻게 데이터를 전송하는지 설명해보겠습니다. 그림이 복잡한 편이지만 번호를 매겨놨으니 번호를 잘 따라서 설명을 보시면 도움이 되실겁니다. 1. 클라이언트에서 저장 요청을 합니다. > 클라이언트에서 DFSO

Porto Seguro’s Safe Driver Prediction[1](안전한 운전자 예측, 캐글) [내부링크]

번역본 링크: https://colab.research.google.com/drive/1b-L1YNurN884mrbzZLDkE3JP-pwbt_5J Google Colaboratory colab.research.google.com 원본 링크: https://www.kaggle.com/bertcarremans/data-preparation-exploration Data Preparation & Exploration Using data from Porto Seguro’s Safe Driver Prediction www.kaggle.com 이번에 포스팅할 내용은 캐글의 Porto Seguro’s Safe Driver Prediction라는 대회의 커널 번역본입니다. 대회의 취지는 수년간 안전하게 운전을 한 운전자도 많은 보험료를 내는 부분을 해결하고자 운전 데이터들을 토대로 좋은 운전자와 나쁜 운전자를 예측하고, 더 많은 운전자에 대한 자동차 보험 접근성을 높이는 것입니다. 캐글의 커널들을

Porto Seguro’s Safe Driver Prediction[2](안전한 운전자 예측, 캐글) [내부링크]

번역본 링크: https://colab.research.google.com/drive/1TbMWFhUJ7Kxc6ZluXDvF4C0md8wkDm4U Google Colaboratory colab.research.google.com 원본 링크: https://www.kaggle.com/aharless/xgboost-cv-lb-284 XGBoost CV (LB .284) Using data from Porto Seguro’s Safe Driver Prediction www.kaggle.com 이번에 포스팅할 내용은 캐글의 Porto Seguro’s Safe Driver Prediction라는 대회의 커널 번역본입니다. 지난번 커널은 피처들을 어떻게 다룰지에 대해 초점이 맞춰져 있었다면, 이번 커널은 제출을 위한 큰 틀을 짜보는 커널입니다. [1]번 커널을 공부하지 않으셨다면 먼저 해보시는걸 추천합니다. 대회의 취지는 수년간 안전하게 운전을 한 운전자도 많은 보험료를 내는 부분을 해결하고자

Bike Sharing Demand(자전거 대여량 예측, 캐글) [내부링크]

첨부파일 : 문제를 분석한 주피터노트북 파일, HTML 파일 맨 아래 있습니다. 이번에 포스팅할 내용은 데이터 경진대회 사이트인 캐글의 문제 Bike Sharing Demand 입니다. 날씨, 요일, 휴일, 기후, 온도 등 주어진 데이터를 이용해 자전거의 대여량을 예측하는 문제입니다. 링크는 다음과 같습니다. https://www.kaggle.com/c/bike-sharing-demand Bike Sharing Demand Forecast use of a city bikeshare system www.kaggle.com 캐글 공부를 하면서 제가 느끼기에 불편했던 점인 영어로만 써있는 커널을 한글로 정리도 함과 동시에, 머리에만 있는 생각들을 말이나 글로 풀어내보는 훈련을 위해 여러 사람들과 공유하려합니다. (영어 공부를 하세요.... ㅠㅠ) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 첨부파일은 다음과 같이 분석을 해보았습니다. 첨부파일 중 HTM

타이타닉 문제 분석해보기(Kaggle, 캐글) [내부링크]

첨부파일 : 타이타닉 문제를 분석한 주피터노트북 파일, HTML 파일 맨 아래 있습니다. 이번에 포스팅할 내용은 데이터 경진대회 사이트인 캐글의 대표적인 문제 Titinic: Machine Learning from Disaster 입니다. 좌석 등급, 성별, 나이 등 주어진 데이터를 이용해 탑승자의 생존 여부를 예측하는 문제입니다. 링크는 다음과 같습니다. https://www.kaggle.com/c/titanic/ Titanic: Machine Learning from Disaster Start here! Predict survival on the Titanic and get familiar with ML basics www.kaggle.com 캐글 공부를 하면서 제가 느끼기에 불편했던 점인 영어로만 써있는 커널을 한글로 정리도 함과 동시에, 머리에만 있는 생각들을 말이나 글로 풀어내보는 훈련을 위해 여러 사람들과 공유하려합니다. (영어 공부를 하세요.... ㅠㅠ) ㅡㅡㅡㅡㅡㅡㅡㅡ