일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 델타 rule
- falsePosition
- 알고리즘대회
- graphical models
- MySQL
- 선형분류
- Fisher discriminant analysis
- Perceptron Convergence theorem
- undirected graphical model
- 스터디
- 알고리즘
- directed graphical model
- 인공지능
- Numerical optimization
- CH01
- 1차예선
- 5397번
- 선형판별분석
- 2018
- 로지스틱 회귀
- 자바ORM표준JPA프로그래밍
- vector미분
- 이것이 MySQL이다
- chapter01
- 근구하기
- 개발순서
- secant
- bisection
- chapter02
- SCPC
- Today
- Total
목록알고리즘/문제풀이 (23)
computer_study
문제 : 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..
문제 : www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 해결 아이디어 1. 배열에 모두 저장하여 stl을 활용하여 해결하면 간단한 문제이지만, 최대 1000만개의 데이터가 주어지기에 stl을 이용하지않는다. 2. 입력받은 값들을 모두 저장하지않고 해결하기 위해 counting sort를 이용한다. ( counting sort에 대한 내용은 knowable.tistory.com/17에서 확인할 수 있다. ) python import sys n = int(sys.stdin..
문제 : www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 � www.acmicpc.net 문제 해결 아이디어 1. 각 언어의 sort stl의 특성을 이용한다. python python에선 sort함수로, list를 특정 인자로 정렬을 한다고 지정 시, 나머지 인자들은 원래 list 순서대로 유지한다는 특징을 이용한다. ex) (2,4),(2,3),(1,5) 를 첫번째 인자를 기준으로 정렬한다면 (1,5),(2,4),(2,3)이 된다. n = int(input()) array = [] for..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MA8sj/btqGg5ggKEB/hzvOmfkzDT4WkrfDKaDYT0/img.png)
문제 : www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 해결 아이디어 1. 단순 정렬 문제이므로 여러 정렬 방법이 사용 가능하다. 2. 버블정렬과 stl을 사용하여 문제를 해결한다. python stl을 사용한 풀이이다. python에서 list sort는 O(n x lgn)을 보장하기 때문에 이 문제를 풀기에 넉넉하다. num = int(input()) arr = list() for _ in range(num): arr.append(int(input())..