분류 전체보기
[Basic] 숫자 길이 및 배열 전환 함수 살펴보기 c언어
자료형 숫자 길이에 따른 범위 정리표 여기서 중요한 int, char 형에 집중하면 char 은 대략 127까지 int형은 5자리 수, long int형으로 가면 10째 자리까지 long long int형으로 가면 19째 자리 수까지 커버가 가능하다. int형 > 배열 to_string(숫자) sprintf(문자열, "%d", 숫자) 배열 > int형 stoi(배열)
[백준] 2577번: 숫자의 개수
백준 2755번: 숫자의 개수(문제링크) 문제에서 파악해야 할 핵심요소 및 마인드맵 긴 숫자의 숫자하나하나를 어떻게 받을 것인가? 0~9까지의 숫자를 어떻게 적립시킬 수 있는가? 주의사항 숫자를 char형 배열로 만들어주는 stdio.h의 sprintf 함수를 이용한다. string의 길이를 알려주는 strlen 함수는 string.h를 이용한다. #include #include //strlen을 위한 import int main(void){ int a, b, c; int cnt[10] = { 0 };//0~9 개수를 적립할 리스트 int sum; char temp[100];//긴 숫자를 담을 배열 준비 int i; scanf("%d %d %d", &a, &b, &c); sum = a*b*c; sprin..
[백준] 8958번: OX퀴즈
백준 8958번 문제 링크 문제에서 파악해야 할 핵심요소 및 마인드맵 긴 문제를 어떻게 받아올/글자 하나하나 읽어올 것인가? 연속되는 정보는 어떻게 받아올 것인가? 주의사항 string형이 더라도 char[]형식으로 받아온다. char[]길이는 strlen 형식으로 받아온다.(lenof 형식 아님!) + 이럴 때 string.h 포함하기 연속적인 조건 확인하기 : score =1로 세팅후에 조건이 나오면 적립하는 방식 / 원상태로 돌려놓는 방식도 포함한다. #include #include char s[80]; int main(){ int num, score, sum; scanf("%d", &num); for (int i = 0; i < num; i++){ sum = 0; score = 1; scanf("..
[Basic] 출력 계속 받는 방법 정리
while문을 이용하여 계속 받게 해도 출력 무한대로 받고 이후에 출력이 없어도 유지된다. 밑 예시로 확인해보자. 1. python import sys for line in sys.stdin: #여기부터 코드 작성 2. C언어 #include int main(void){ while(1){ scanf(~~~); #여기서 부터 코드 작성 } return 0; } 3. JAVA import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); public static void mai..
[백준]2920번: 음계 c언어
백준 2920번 음계 문제링크 문제에서 파악해야 할 핵심요소 및 마인드맵 어떻게 오름차순, 내림차순, 아무것도 아닌 것으로 파악할 것인가? 주의사항 여러개 for문을 쓰는 것이 답만 맞으면 가능한 일이다. a,b,c의 경우로 나뉜다면 c는 a도 아닌, b도 아닌 경우로 파악하고 문제를 풀면 쉽다.(c는 mixed와 같은 나머지 경우로) 여부를 파악하는 경우에 a=0,1이나 True, false와 같은 이진법 개념을 가져와서 적용하는 것이 유리하다 #include int input[10]; int main(void) { int a = 1, b = 1; for (int i = 0; i < 8; i++) {//입력받기 scanf("%d", &input[i]); } for (int i = 0; i < 8; i+..
[백준] 3052번: 나머지 c++
백준 3052 나머지 문제 링크 이 문제를 위해 파악해야 할 핵심요소 및 마인드맵 배열을 어떻게 활용할 것인가? 배열 안에 서로 다른 값과 같은 값을 구분할 수 있는 방법을 알고 있는가? 주의해야할 점/여러 풀이 방법 및 아이디어 배열에 들어갈 수 있는 숫자 자체가 한정적인 경우 정해진 크기의 배열을 생성, 그 안에 숫자에 맞게 넣는 알고리즘 배열을 빈 상태 시작, 거기에 하나씩 넣고 중복을 확인하는 것 t; remain[t % 42] = 1; } int count = 0; for (int i = 0; i < 42; ++i) { count += remain[i]; } cout
[NLP] RNN 예제로 살펴보는 RNN 맛보기
*이 글은 네이버 AI Hackerton의 참가 때 이용하였던 ClovaAI Github를 참고하여 작성되었습니다. 깃허브 링크를 누르시면 더 전반적인 코드를 보실 수 있습니다. 이 Encoder, Decoder 부분은 Attention 함수를 기반으로 작성되었기에 좀 어려움을 느끼실 수 있겠지만, RNN 전반적인 코드 작용에 대한 이해를 돕기 위해 작성되었습니다. 너무 깊게 보시는 것보다는 이런 흐름으로 이어진다는 느낌 정도를 받는다는 생각으로 가볍게 보시길 추천드립니다. Encoder 함수 엿보기 1. Conv2d: Convolution 작업(filter를 통해 곱하고, activation function을 거치는 작업)을 하는 레이어 input_channel : 1 < 초기 channel 개수 ou..
[백준] 1110번: 더하기 사이클 c언어
백준 1110번 더하기 사이클 문제 링크 문제에서 파악해야 할 핵심요소 및 마인드맵 int 자료형의 십, 일의 자리 숫자는 어떻게 구할 수 있는가? String형으로 변환 후 [0],[1]의 자리로 구하고, int형으로 변환 (채택) /10, %10로 각각 구해내기 조건이 이루어질 때까지 이루어지는 사이클 do~while문 + while문에 조건 적기 while문 + while문에 조건 적기 while문(1) + while문 내부에 조건 + break 적기
[DataStructures]Tree트리에 대해서 알아보자
트리 순서 트리Ordered Tree 무순서 트리Unordered Tree 검색 알고리즘 너비 우선 탐색 : 낮은 레벨에서 시작해 왼쪽에서 오른쪽 방향으로 검색하고 그 다음 레벨에서 검색 깊이 우선 탐색 : 리프까지 내려가면서 검색하는 것을 우선순위로 하는 탐색 방법 전위 순회Preorder 중위 순회Inorder 후위 순회Postorder
[백준] 2908 상수 C언어
백준 2908 문제 (링크 여기서 확인하세요!) 풀이 1) 숫자로 받기 - 백/십/일의 자리를 각각 받아서 숫자 완성 - 크기 비교 #include int main() { int x, y, x2, y2; int f[2], m[2], l[2], i; scanf("%d %d", &x, &y); for (i = 0; i < 2; i++) { f[0] = x / 100; m[0] = (x % 100) / 10; l[0] = (x % 100) % 10; x2 = ((l[0] * 100) + (m[0] * 10) + f[0]); f[1] = y / 100; m[1] = (y % 100) / 10; l[1] = (y % 100) % 10; y2 = ((l[1] * 100) + (m[1] * 10) + f[1]); }..
2019 Summer) 2019 인텔 AI 드론 경진대회 후기
* 이 후기는 필자가 2019 인텔 AI 드론 경진대회 대학부에 참여하면서 느낀 점들을 작성한 글입니다. * 대회 관련 사항은 이 사이트를 확인해주세요! 1. 사전 교육 및 대회 참여 고려대학교 공학교육혁신센터에서 수상을 한 팀들을 대상으로 참가 여부를 물어서 저번에 인연이 있었던 우리 팀은 이를 바탕으로 참여를 하게 되었다. 대학부 경진대회 내용은 이러하였다. 인텔의 인공지능 툴인 caffe를 이용하여 cifar10에 대회에서 요구하는 8가지 대상(가위, 바위, 보, 로고 3가지, 강아지, 말)을 학습하여 드론에 적용시켜 드론이 이를 인식하면 되는 것이다. 사전 교육은 고려대학교 공학관에서 이틀에 걸쳐 이루어졌으며 이 내용을 학습하였다. 기본적인 인공지능 개론 caffe 학습 방법 NUC와 카메라를 이..
2019 Summer) 카이스트 몰입캠프 후기 4주차
* 이 글은 2019년 여름학기(6월 25일 - 7월 26일) 카이스트 몰입캠프에 참여한 후기를 담고 있습니다. (몰입캠프에 관한 정보는 이 링크에 있습니다.) ** 캠프를 다니면서 가지고 있었던 생각, 어려움들을 프로젝트 주차별로 정리해보았습니다. 4. 캠프 4주차: TheCodeEscape | 고생의 시작과 끝 3주 차 때 1주 차 때 언급되었던 그 똘똘한 친구가 갑자기 나한테 마지막 프로젝트를 함께 하자고 하였다. 그때는 몰랐다 그게 고생의 시작이었는지를... 나는 3주 차 때의 프로젝트 완성 후 완전히 지쳐 있었던 상황이었다. 하지만 눈을 들어보니 나에게 욕심의 눈으로 가득 찬 팀원 2명이 어떻게 4주 차를 할지 토론하고 있었다. 1표 차로 떨어진 상태라 사기가 떨어진 상태라서 마지막 주차에는 다..
2019 Summer) 카이스트 몰입캠프 후기 3주차
* 이 글은 2019년 여름학기(6월 25일 - 7월 26일) 카이스트 몰입캠프에 참여한 후기를 담고 있습니다. (몰입캠프에 관한 정보는 이 링크에 있습니다.) ** 캠프를 다니면서 가지고 있었던 생각, 어려움들을 프로젝트 주차별로 정리해보았습니다. 3. 캠프 3주 차 : Emily | 직접 전체적으로 만져보고, 총괄하다. 3주 차부터는 본격적으로 각자 마음이 맞는 사람들이 모여 프로젝트를 시작하는 것이기에 잘하고 싶은 마음이 앞서서 2주 차쯤부터 굉장한 고민을 많이 하였다. 그때 나는 서버에 관한 완전한 이해(쓸 줄은 알았는데 갖고 노는? 그런 느낌은 있지 못하였다.)가 밑바탕되어있지 않았고 자신이 있는 것이라고는 안드로이드 앱 자유자재로 만지기 정도의 실력밖에 없었기에 팀원을 모으는 일에도 신중하였다..
2019 Summer) 카이스트 몰입캠프 후기 1,2주차
* 이 글은 2019년 여름학기(6월 25일 - 7월 26일) 카이스트 몰입캠프에 참여한 후기를 담고 있습니다. (몰입캠프에 관한 정보는 이 링크에 있습니다.) ** 캠프를 다니면서 가지고 있었던 생각, 어려움들을 프로젝트 주차별로 정리해보았습니다. 0. 캠프 시작 전 개인적으로 카이스트에서 훗날 석사, 박사로 참여할 의향이 있었고, 개발에 관한 경험이 부족했던 터라 개발이 도대체 어떤 것일까라는 궁금증을 가지고 지원을 하게 되었습니다. 운이 좋게도 합격이 되어 참여할 수 있게 되었고, 합격한 날은 정말 정말 기분이 좋았고 너무 설레었습니다. 학교를 벗어나서 새로운 사람들과 만날 수 있어서 좋고, 무엇보다도 그에 더해 진로에 대해 생각해보면서 진지한 결정을 내릴 수 있다는 생각을 가질 수 있는 경험이 저..
[DataStructure]Array배열/List리스트(ArrayList배열리스트, LinkedList연결리스트)
Array배열 ex) int array[6], String Array[12] 좋은 ) Index가 존재하여 값 조회에 용이 나쁘 ) 개설시 크기를 지정해주어야 하며 변동도 불가능, 하나의 원소를 제거하면 그 제거된 공간은 빈 공간으로 유지되어, 후에 그 공간을 제거하기 위해 뒤에 있는 하나의 원소를 배열 중간에 추가해도 뒤에 내용들을 뒤로 옮기기 위한 까다로운 절차가 필요하다. List리스트 : 데이터를 일렬로 늘어놓은 자료구조 리스트는 인터페이스이고, 밑으로 ArrayList, LinkedList를 포함하고 있다. ArrayList배열리스트 내부에 있는 배열에 데이터를 저장하는 구조 Index로 데이터 항목을 찾는 일이 많을 경우 유용 크기가 고정된 Array와 달리 크기가 유동적인 측면에 유용 Arr..
[Machine Learning] Linear Model선형모델/LinearRegression선형회귀/LinearClassification선형분류
데이터 예측에 실행되는 순서들 Linear Model선형모델 의 간단한 개요 선형모델은 말그대로 Linear선을 가지고 모델을 짜는 알고리즘을 말합니다. 풀어서 말하면 입력값 X와 출력값Y간의 관계를 일차함수(선형 함수)로 모델링합니다. 입력값 X와 출력값Y는 각각 행렬의 형태로 하나의 x값에 대응되는 y값이 하나씩 존재합니다. 여기서 feature가 p개이면 이런 형태로 X,Y값을 나타낼 수 있습니다. 하지만 저희는 하나의 파라미터에 영향을 미친다는 가정하에 이렇게 나타낼 수 있고, 결국 y = a*x+b의 형태에 다다르게 되어 입력값 X, 출력값 Y가 있으면 이 둘의 관계에 걸맞는 최선의 a, b를 구하는 것이 저희의 목표가 될 것입니다. 최선의 a, b를 구하는 것이 Linear Regression..
[DataStructure/Algorithm] DataStructure자료구조/Algorithm알고리즘 정리
목차를 정리했습니다! 누르시면 해당 글로 들어갈 수 있습니다. Data Structure자료구조 기본적인 분류 Array배열 | ArrayList배열리스트 Hash Table해시 테이블 Stack스택 List리스트 Linear List선형 리스트 Linked List연결 리스트 Doubly Linked List이중 연결 리스트 Tree트리 | DFS, BFS Binary Tree이진 트리 Graph그래프 | 최단거리 Algorithm알고리즘: Sort/Search/etc. 기본으로 배우는 알고리즘들 Factorial | 팩토리얼 Fibonacci | 피보나치 수 Hanoi Tower | 하노이 탑 Sorting Algorithm정렬 알고리즘 | 동영상 정리본 Bubble-sort | 버블 정렬 Selec..
[Python Library] NumPy 함수 정리/NumPy function cleanup
Numpy 라이브러리를 사용하는 가장 큰 이유는 Array의 사용입니다. Python의 Array 와 비교되는 Numpy의 차이점은 바로 차원의 다양성이라고 말할 수 있습니다. Python Array는 현재 일차원 만을 지원하는 것에 비해, Numpy는 일차원 외에도 2차원을 지원하여 딥러닝이나 머신러닝을 사용할 때, 행렬을 이용한 계산이 필요한 시점에서 항상 쓰이게 됩니다. *이 글은 Kaggle:NumpyTutorialForBeginner를 참조하였고 그 외에도 제 나름대로 공부한 내용(Deep Learning Specialization by Andrew Ng, 데이터 과학을 위한 통계, An introduction to Statistical Learning 등등)을 덧붙여 만들어졌습니다. 그럼 시작..
[Java] 클래스 정리
클래스 이용하는 방법 #예시로 biginteger 이용 #클래스 import하기 import java.math.*; import java.util.Scanner; class IsItprime{ public void main(String args[]){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); #메서드를 이용하기 위해서는 그 객체안으로 넣어놔야하므로 클래스에 해당하는 객체 선언 BigInteger n = new BigInteger(n); scan.close(); #이용하고 싶은 메서드를 골라 객체와 함께 묶어서 물어보기 System.out.println(n.IsProbablePrime? "prime" : "not prime" ); } ..
2019 March) Google Developers ML Summit Seoul 2019 후기
행사 관련 링크는 https://events.withgoogle.com/google-developers-ml-summit-seoul/ 을 참조해주세요! 바로 어제!! 열렸던 Google Developers ML Summit Seoul 2019를 보고 들은 것과 나름대로 알게 된 지식들을 공유하고 후기를 써보고자 하여 포스팅하게 되었습니다. Agenda어젠다 세션과 Codelabs코드랩 세션으로 나뉘어서 진행이 되었습니다. 이번 포스팅에서는 어젠다 세션에 자세하게 포스팅하고자 합니다. Agenda Session 인사말: 임성혁 님 | Developer Relations Program Manager, Google 구글 개발자 생태계팀을 간단히 설명하시면서, GDE, GDG, StudyJam에 대해서 설명해주..
[Deep Learning]여러 개의 훈련 데이터set로 딥러닝 기반 신경망 알고리즘 적용/Neural Networks and Deep Learning/in multiple training examples/in several hidden layer
*이 글은 Coursera: Neural Networks and Deep Learning(Andrew Ng)과 데이터 과학을 위한 통계(피터 브루스, 앤드루 브루스 지음)를 참조하여 작성되었습니다. 이 글을 읽기 위해서는 기본적인 미분 개념 및 행렬 개념(dimension 관련)이 필요합니다. ▶하나의 훈련데이터로 딥러닝 기반 신경망 알고리즘 적용하기(+신경망 기본 개념) : https://jisuhan.tistory.com/9 이번 포스팅에서는... 하나의 훈련 데이터가 아닌 m개(여러 개)의 훈련 데이터 set을 바탕으로 신경망 알고리즘이 어떻게 작동하는지 알아보는 시간을 가질 것입니다! 신경망을 공부하는데 훈련 데이터 set들을 for loop으로 돌리기에는 너무 많은 시간이 들어서 행렬로 계산도 ..
[Deep Learning]하나의 훈련 데이터로 본 딥러닝 기반 신경망 알고리즘 적용
*이 글은 Coursera: Neural Networks and Deep Learning(Andrew Ng)과 데이터 과학을 위한 통계(피터 브루스, 앤드루 브루스 지음) 을 참조하여 작성되었습니다. Deep Learning 시 이용되는 Neural Network 알고리즘을 이용하여 하나의 훈련데이터를 이용하여 Hidden Layer에 적용하는 일련의 목차를 설명드리고자 합니다! 입력값X와 결과값Y를 입력하고 기계에게 알고리즘을 직접 적용하여 기계가 적용된 알고리즘을 이용하는 머신러닝의 부분과는 다르게, 딥러닝은 입력값X와 결과값Y를 입력하면 기계는 이러한 X,Y 값을 학습하여(우리가 적용하지 않고) 입력값을 제시시 기계가 알아낸 학습값을 나타냅니다. 먼저 일반적인 파라미터(Parameter) 개념 및 ..
[AI] Neural Networks and Deep Learning 단원 정리
Deep Learning.ai Specialization (https://www.coursera.org/specializations/deep-learning?) Professor Andrew Ng Course1 : Neural Networks and Deep Learning (Week 1: Introduction to Deep Learning) It was just a normal introduction of Deep Learning. If you don't enough time to watch, I recommend you to skip. Week 2: Neural Networks Basics In this week, you will be on the practical stand to start Neu..
2018 November) 2018 인공지능 국제 컨퍼런스Artificial Intelligence International Conference 2018 Summary
관련 링크 : http://www.aiic.kr/fairDash.do 1. Lecture 1 : AI for Transportation : Where We Are and What Are The Challenges by Seo Youngwoo 자율주행 자동차의 유래와 미래에 관하여 간단하게 알려주시고, 자율주행 자동차의 원리에 대해서 말씀해 주셨다. CNN, DNN 을 통하여 자동화 궤적을 찾아내게 되어 가능하였다. 하지만 2016년 구글의 자율주행 자동차가 버스에 충돌하는 등의 사고에서 발생한 것을 통해 알 수 있듯이 Acting on impulse, 즉 갑자기 발생하는 것에 대하여 결정을 만드는 것에 어려움이 있다며, 이를 극복하면 자율 주행이 보편화된 세상이 올 수 있다. 2. Lecture 2 : ..
2018 February) Coursera: How to Win a Data Science Competition: Learn from Top Kagglers Week 1~ Week 3 Summary
0. Machine Learning Algorithms Linear Model Logistic Regression, Support Vector Machine Tools) scikit learn, Vowpal Rabbit Tree-based Decision Tree, Random Forest, GBDT Tools) scikit learn, XGBoost, LightGBM KNN-based methods Tools) scikit learn Neural Networks Tools) Tensorflow, Keras, Mxnet, Pytorch, Lasagne 1. Data Check Check List Target Metric Domain Knowledge +How data generated 2. Data Pr..
2019 February 2019 케라스&캐글 전국콘서트
행사를 다녀온 후 정리한 글입니다! 2019.02.14 케라스 & 캐글 전국 콘서트 Keras & Kaggle Concert by Kaggle Facebook Korea (https://tykimos.github.io/2019/02/09/Keras_and_Kaggle_National_Concert/) 김태영, 케라스 코리아 운영자 케라스의 기본적인 소개 간결한 딥러닝 라이브러리 중 하나 텐서플로우, 케라스, pytorch 이 3가지 중 2가지 이상 익히겠다는 생각으로 공부 딥러닝 모델들에 대한 간단한 소개 최적화 딥러닝을 레고에 비유, 모델(레고자체) = 네트워크(머리) + 목표함수Objective Function + 최적화기Optimizer //y와 y'의 차이를 이용하여 갱신 이유한, 캐글 코리아 운..
2018~2019 AI School 참가, 사물인식 해커톤 참가, AI 해커톤 조교 후기
*이 글은 필자가 2018,19년에 걸쳐서 참가한 대회와 조교 참여 후기를 담은 글입니다. 1. 2018 AI School | 2018.08.13~2018.08.14 고려대학교 공학교육혁신센터에서 주최한 2018 AI School에 참여하게 되었다. 아직 진로가 결정되지 않은 상태에서 계속적으로 진로를 찾아나가고 새로운 경험들을 얻기 위하여 지원해서 참여하게 되었다. 동부인재개발원에 모여서 인공지능과 빅데이터에 대해 배우게 되었습니다. 제가 컴퓨터 자체의 큰 세계에 관하여 발을 들이는 좋은 기회였습니다. 카카오에서 오신 분게서 카카오 I에 관해서 설명을 하면서 인공지능이 훗날 우리에게 얼마나 큰 영향을 끼칠지 알았다. 또한 경진대회를 통해서 AI에 관해서 사업 아이디어를 구상해보고 발표하는 시간을 가지게..