-
[백준] 1064 - 평행사변형Algorithm 문제 2019. 7. 3. 20:59
https://www.acmicpc.net/problem/1064 1064번: 평행사변형 평행사변형은 평행한 두 변을 가진 사각형이다. 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC) 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다. 이때, D가 여러 개 나올 수도 있다. 만들어진 모든 사각형 중 가장 큰 둘레 길이와 가장 작은 둘레 길이의 차이를 출력하는 프로그램을 작성하시오. 만약 만들 수 있는 평행사변형이 없다면 -1을 출력한다. www.acmicpc.net 평행사변형이 존재하지 않는 경우를 먼저 계산해야 한다. 세 점이 동일한 직선 상에 있는 경우 평행사변형을 그릴 수 없으므로 a와 b, a와 c 사이의 기울기를 비교하면 된다. 이때, 나눗..
-
[백준] 15954 - 인형들Algorithm 문제 2019. 7. 2. 13:30
https://www.acmicpc.net/problem/15954 15954번: 인형들 첫 번째부터 세 번째까지의 인형을 선택하면 표준편차는 2/3의 양의 제곱근이 되고, 이 때 표준편차가 최소가 된다. 두 번째부터 네 번째까지의 인형을 선택하는 경우와, 세 번째부터 다섯 번째까지의 인형을 선택하는 경우에도 값은 같다. www.acmicpc.net 작년도 카카오 코드 페스티벌에 출제되었던 문제. 당시에 참가했을 때는 못풀었었다... 주어진 조건에서 편차의 최솟값을 구하는 문제이나 두 가지 유의할 점이 있다. 1. 소수의 정밀도 일반적인 c++ float, double, python의 float type을 사용하는 경우 부동 소수점 형의 오차로 인해 정답을 구하기 어렵다고 한다. 따라서 c++의 경우 l..
-
[백준] 1562 - 계단 수Algorithm 문제 2019. 6. 30. 20:22
https://www.acmicpc.net/problem/1562 1562번: 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 간단한 dynamic programming 문제이다. dp에 이용되는 숫자의 특징은 2가지다. 수의 마지막에 위치하는 숫자 현재까지 사용된 숫자 현재까지 사용된 숫자의 경우, bitmask를 사용하여 10진수로 변환한다. ex) 2, 4, 5 를 가짐 -> 0000110100(2) -> 52 위 두가지 특징을 가진 계단 수의 개수를 2차원 배열에 저장한다. n-1 길이의 계단 수들로부터 n 길이의 계단 수의 계단 수의 개수를 구한다. 배열을 전부 순회하며 해당 수의 가장 뒷자리에 올 수 있는 수를 추가한 뒤, 이를 n ..
-
[백준] 3190 - 뱀Algorithm 문제 2019. 6. 30. 16:55
https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따 www.acmicpc.net 간단한 구현 문제. 문제 내에 뱀의 이동, 길이 증가에 대한 알고리즘이 잘 설명되어 있어 그대로 구현하면 된다. n x n 배열에 사과를 1, ..
-
[백준] 17140 - 이차원 배열과 연산Algorithm 문제 2019. 6. 29. 17:23
https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 단순한 연산 구현 문제. 상대적으로 속도가 느린 Python을 사용하였다. 시간제한을 맞추기 위해 몇가지 방법을 사용하였다. PyPy3로 제출 heapq, sys 모듈 사용 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 32 33 34 35 36 37 38 39 40 41 42 43..
-
[백준] 1238 - 파티Algorithm 문제 2019. 6. 28. 18:03
https://www.acmicpc.net/problem/1238 1238번: 파티 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다. 이 도로들은 단방향이기 때 www.acmicpc.net 간단한 플로이드-워셜 알고리즘 문제 https://ko.wikipedia.org/wiki/%ED%94%8C%EB%A1%9C%EC%9D%B4%..
-
Speaker Recognition -SincNetMachine Learning 논문 리뷰 2019. 6. 28. 00:45
https://arxiv.org/abs/1808.00158 Speaker Recognition from Raw Waveform with SincNet Deep learning is progressively gaining popularity as a viable alternative to i-vectors for speaker recognition. Promising results have been recently obtained with Convolutional Neural Networks (CNNs) when fed by raw speech samples directly. Rather than emp arxiv.org 1. Introduction 본 논문은 CNN architecture 에 sinc f..
-
[백준] 13306 - 트리Algorithm 문제 2019. 6. 27. 13:13
https://www.acmicpc.net/problem/13306 13306번: 트리 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 트리의 정점의 개수와 질의의 개수를 나타내는 두 정수 N과 Q (1 ≤ N, Q ≤ 200,000)가 주어진다. 다음 N-1개의 줄의 i번째 줄에는 정점 i+1의 부모 정점을 나타내는 정수 a가 주어진다 (1 ≤ a ≤ N). 다음 (N-1)+Q개의 줄 중에서 N-1개는 (1)의 형태로, Q개는 (2)의 형태로 주어진다. (1) 두 정수 x와 b가 주어진다(x = 0, 2 ≤ b ≤ N). 이것은 b의 www.acmicpc.net 일반적인 방법으로 UNION-FIND TREE 를 사용할 경우 edge 삭제 후 부모 갱신 과정에서 시간초과가 발생한다. 삭제된 edge..