카테고리: Algorithm

백준 외원판순회2 10971

1. 백준외원판순회2 10971 2. 컴퓨팅 스킬 W[i][j]는 도시 i에서 도시 j로 가기 위한 비용이므로 모든 경우의 수 완전탐색을 수행합니다. N까지의 값을 vector에 넣어서 next_permutation을 수행합니다. next_permutation을 수행하는이유는 예를 들어 N이 4라고 하였을 경우 0,1,2,3까지의 값들을 vector에

백준 123더하기 9095

1. 백준 1,2,3더하기 9095 2. 컴퓨팅적 스킬 DFS 재귀함수 이용 vector에 테스트케이스 개수만큼의 값들을 넣어준 후, 반복문을 통해 각 경우에 대한 dfs를 호출하여 최종적으로 리턴되는값은 1,2,3으로 만들 수 있는 n에 대한 경우의 수입니다. dfs를 이해하기에 가장 좋은 예중 하나는 n과m문제입니다. 순열과 조합에 대표적인 문제입

백준 차이를최대로 10819

1. 백준 차이를최대로 10819 2. 컴퓨팅 스킬 #include헤더에 있는 next_permutation()함수를 호출하여 순열과조합을 구현합니다. next_permutation : 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 다음 순열을 구하고 true를 반환한다. 다음 순열이 없다면(다음에 나온 순열이 순서상 이전 순열보다 작다면)

백준 일곱난쟁이 2309

1. 백준 일곱난쟁이 2309 2. 컴퓨팅적 스킬 do while ~ (next_permutation)으로 계속해서 다음 조합의 경우의 수를 찾는다. vector v, check변수를 선언하여 permutation을 수행한다. 9명중 7명을 뽑아야하므로 7명만큼 check=true로 변경해서 수행한다. next_permutation을 수행하면서 값들이

백준 날짜계산 1476

1. 백준 날짜계산 1476 2. 컴퓨팅적 스킬 단순 반복문과 조건문을 이용한 사칙연산 문제 while문을 이용해 지구,태양,달이 해당 입력값과 맞을 경우 break; 3. 컴퓨팅적 사고 년도가 증가할때마다 E,S,M이 1씩 증가한다. 지구 1<=E<=15, 태양1<=S<=28, 달 1<=m<=19의 범위를 벗어나

이진 탐색 트리 BST

1. 검색트리 Search Tree 1.1. 계층적인 구조를 표현 조직도 디렉토리와 서브디렉토리 구조 가계도 1.2. 트리의 특징 트리는 노드(node)들과 노드들을 연결하는 링크(link)들로 구성됩니다. 맨 위의 노드를 "루트(root)"라고 부릅니다. 노드를 연결하는 선을 "link", "edge

알고리즘 N-Queen 문제

1. N-Queen문제 2. 컴퓨팅적 스킬 Recursive() 재귀함수 어느지점에서 종료시키고, 다시 재귀호출을 해야하는지의개념을 확실하게 알고 있어야합니다. Recursive()의 개념을 잡기에 좋은 문제는 백준 N과 M시리즈 입니다. 개념이 약하신분들은 순열과 조합의 개념부터 확실히 잡고 오시는것이 좋을 것이라고 생각을 합니다. 백트래킹 깊이우선

프로그래머스 더 맵게

1. 프로그래머스 더 맵게 문제 2. 컴퓨팅적 스킬 이번 문제를 해결하기 위해서는 단순 sort를 사용하는것이 아니라 우선순위큐 priority_queue<int,vector<int>,greater<int>> 오름차순 형식으로 써주어야합니다. 단순히 while문을 통해서 안에서 sort를 처리하려고 하였지만 16번 테

프로그래머스 가장 큰 수

1. 프로그래머스 가장 큰 수 문제 2. 컴퓨팅적 스킬 0 또는 양의 정수 1 <= numbers_length <= 100,000, 0 <= numbers <= 1000 를 보고 O(N^2) 복잡도 불가할 것이라 예측하였습니다. 왜냐하면 (100,000)^ = 약 100억 String to int 변환 함수 atoi(str.c_s

프로그래머스 H-index

1. 프로그래머스 H-index 문제 2. 컴퓨팅적 스킬 정렬문제인 만큼 #include <algorithm> 헤더에 있는 sort를 이용하면 됩니다. sort는 기본적으로 오름차순 정렬로 되어있습니다. 별 다른 옵션을 주지 않아도 오름차순 정렬을 하게 됩니다. 그 외 내림차순정렬을 이용 할 때는 다음과 같은 두가지 방법을 사용할 수 있습니