일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 스터디
- MySQL
- 이것이 MySQL이다
- secant
- chapter01
- 선형판별분석
- SCPC
- 델타 rule
- 선형분류
- 알고리즘
- 근구하기
- vector미분
- 5397번
- falsePosition
- 알고리즘대회
- 인공지능
- graphical models
- undirected graphical model
- 자바ORM표준JPA프로그래밍
- bisection
- 1차예선
- chapter02
- directed graphical model
- Numerical optimization
- Fisher discriminant analysis
- CH01
- 로지스틱 회귀
- 2018
- Perceptron Convergence theorem
- 개발순서
- Today
- Total
목록알고리즘 (29)
computer_study
getline함수의 역할 getline함수를 단순히 얘기하면 입력된 문자열을 받아오는 것이다. 이러한 getline 함수에는 두가지 종류가 있다. 1. cin.getline() char*형의 문자열을 받을 경우 사용할 수 있다. #include using namespace std; int main(){ char test[10]; cin.getline(test,10); cout
문제 : www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제 해결 아이디어 1. python에선 dictionary, c++에선 map함수를 이용하여, key값과 value값을 설정하고 문제를 해결한다. 2. 입력값들을 순회하며, 같은 값이 나올 때 마다 value값을 증가시켜, 마지막에 그중 최대값을 출력한다. python n = int(input()) books = {} for _ in range(n): book = input() if book ..
문제 : www.acmicpc.net/problem/1568 1568번: 새 N마리의 새가 나무에 앉아있고, 자연수를 배우기 원한다. 새들은 1부터 모든 자연수를 오름차순으로 노래한다. 어떤 숫자 K를 노래할 때, K마리의 새가 나무에서 하늘을 향해 날아간다. 만약, 현�� www.acmicpc.net python n = int(input()) result = 0 to_sing_num = 1 while n != 0: if to_sing_num > n: to_sing_num = 1 n -= to_sing_num to_sing_num += 1 result += 1 print(result) c++ #include "iostream" using namespace std; int result=0; void cou..
문제 : www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한� www.acmicpc.net 문제 해결 아이디어 1. 처음부터 일치하는 단어를 찾기위해 순차적으로 탐색하고, 찾았다면 찾은 단어 다음부터 다시 탐색한다. python document = input() key = input() start = 0 result = 0 while len(document) - start >= len(key): if document[start:start + len(key)] == key: result += 1 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MQ4nr/btqGtec8OyV/eyu5UslpLNXBe38iGqpkz0/img.png)
문제 : www.acmicpc.net/problem/7490 7490번: 0 만들기 문제 1부터 N까지의 수를 오름차순으로 쓴 수열 1 2 3 ... N을 생각하자. 그리고 '+'나 '-', 또는 ' '(공백)을 숫자 사이에 삽입하자(+는 더하기, -는 빼기, 공백은 숫자를 이어 붙이는 것을 뜻한다). 이�� www.acmicpc.net 문제 해결 아이디어 1. 주어지는 자연수가 3이상 9 이하로 적은 수 이므로, 완전 탐색을 사용한다. 2. 정답을 저장 할 배열을 선언하고, 조건(연산 결과가 0)이 만족하면, 값을 출력 또는 저장한다. python 연산자만을 저장하는 배열과 수를 저장하는 배열을 따로 선언한다. 연산자를 이용한 모든 경우의 수를 찾고, 숫자 사이사이에 대입해 결과를 모두 계산한다. im..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwM5le/btqGiShIFRN/l8BWGxsZA8i3kIL9GwykwK/img.png)
문제 : www.acmicpc.net/problem/1074 1074번: Z 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 �� www.acmicpc.net 문제 해결 아이디어 1. 사각형을 기저모양까지 잘라가며(재귀적으로) 해결한다. 2. n을 입력받으면, 한 변의 길이가 2^n인 사각형이 만들어진다. 3. Z모양으로 탐색을 하기 위해선, 기저모양 (2 x 2 사각형)이 될 때 까지 재귀함수 호출할 때, 사각형의 시작값과 길이를 넘겨주어야 된다. 처음 시작 부분을 (a,b)라 하고 사각형이 2 x 2 모양이 아니라고 하면, 위 그림의 파란 ..
문제 : www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된�� www.acmicpc.net 문제 해결 아이디어 1. 일반 recursion을 사용하면 시간 초과가 나기 떄문에, 다른 방법을 사용한다. python n = int(input()) a, b = 0, 1 while n: a, b = b, a+b n -=1 print(a) 단순 반복문으로 값을 더해 원하는 번째의 수를 출력한다. c++ #include "iostream" using namespac..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9dUek/btqGiKdbtSf/sZXlaafc3f6OV4nPMLZJVk/img.png)
소개 counting sort는 여러 정렬 알고리즘 중 하나로 n이 입력되었을 때, 문자열을 count해주는 부분에서 O(n) , result에 결과를 저장하는 부분에서 O(n), 출력부분에서 O(n)이 소요되어 Linear time( O(n) ) 안에 정렬을 끝낼 수 있다. Pseudo code 동작과정 1. 입력배열 A, 수를 세기위한 배열 B, 결과를 저장하기 위한 배열 result가 필요하다. 2. 입력 배열A에서 나오는 수를 count하여 B에 저장해준다. 3. 이후 B배열을 누적하여 새로운 배열을 만든다. 각 배열은, 정렬 시 해당 index가 몇번부터 시작하는지를 의미한다. (ex, B[2] = 4는 2가 result의 [4]부터 시작해서 앞 1 을 만날 때 까지 2를 채우면 된다는 의미이다..