전체 글
-
[Programmers] 순위(그래프, 플로이드와샬)알고리즘/알고리즘 풀이 2021. 4. 19. 17:06
프로그래머스 순위(그래프, 플로이드와샬) 풀이 리뷰 그래프 플로이드와샬 플로이드와샬을 통해 계속해서 순위를 업데이트해준다. a가 b를 이겼고,b가 c를 이겼으면,a가 c를 이겼다고 표시해주는 거다. 그리고 모든 행과 열을 비교하면서 승패가 확정났는지를 확인한다. 한 행을 돌 때마다 i, j 둘 중에 승패가 확실한 경우 count = n-1이 된다. 따라서 count == n-1이 되는 경우가 바로 순위가 확정난 경우이다. 문제 출처 programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr
-
[정렬] 계수 정렬알고리즘/알고리즘 개념 2021. 4. 14. 18:30
계수 정렬이란? 특정 조건이 부합할 때만 사용할 수 있지만, 매우 빠르게 동작하는 정렬 알고리즘 데이터 크기 범위가 제한되어 정수 형태로 표현할 수 있을 때만 사용 가능 counting 값을 저장할 새로운 배열 공간이 필요함 비교정렬 X 안정정렬 시간 복잡도 모두 O(N+K) (데이터 개수 = N, 데이터 중 최댓값 = K) 언제 사용하면 좋을까? 때에 따라서 비효율적임 데이터가 0, 999999 와 같이 2개의 숫자가 있을 때, 정렬할 데이터는 적지만 1000000크기를 지닌 counting 배열을 생성해야 된다. 따라서, 동일한 값을 가지는 데이터가 여러 번 등장할 때 사용하면 좋음 구현 코드 int main () { int arr[] = {7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, ..
-
[BOJ] 16926 배열 돌리기1알고리즘/알고리즘 풀이 2021. 4. 14. 01:23
백준 16926 배열 돌리기1 [문제 풀이] 구현 배열을 돌릴 테두리 갯수를 센다. -> (min(n,m)+1)/ 2 규칙에 따름 북->동->남->서 방향으로 하나씩 회전을 하는데, range체크를 한다. 범위 내면 한 칸씩 복사, 범위 밖이라면 dir++ 해서 방향 전환시킨다. [출처] www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net
-
[C++] next_permutaion(), prev_permutation()언어/C++ 2021. 3. 2. 20:34
next_permutation(), prev_permutation() 순열 구할 때 사용 둘 다 Algorithm 라이브러리에 있음 next_permutation() 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 다음 순열을 구하고 true를 반환 다음 순열이 없다면(다음에 나온 순열이 순서상 이전 순열보다 작다면) false를 반환 구현 코드 #include #include #include using namespace std; int main(){ vector v; // 1부터 4까지 벡터에 저장 for(int i=0; i