문제 주어진 수와, 연산자를 이용하여 만든 식의 결과의 최댓값과 최솟값 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 조건 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 주어진 수의 순서를 바꾸면 안 된다. 식의 계산은 연산자 우선 순위를 무시하고 앞에서부터 진행해야 한다. 음수를 양수로 나눌 때는 C++14의 기준을 따른다. 즉, 양수로 바꾼 뒤 몫을 취하고, 그..
실패 코드 방법 티켓의 [a, b] 중 b를 기준으로 알파벳 순서가 앞서도록 정렬 후, 그 중에서 맨 앞의 ICN을 선택한 후 dfs 함수로 재귀를 통해 경로를 구하도록 하였다. 🤨 그 결과 다음과 같이 테스트 1, 2를 통과하지 못했다... 코드 #include #include #include using namespace std; vector answer; vector t; vector ch(10000, 0); bool cmp(vector a, vector b){ return a[1]
문제 파악 음이 아닌 n개의 정수들을 순서를 바꾸지 않고 더하거나 빼서 타겟 넘버를 만든다. 유형 파악 우선 문제에서 주어진 입출력 예를 보고 직접 하나하나 구해보자. numbers를 통해 주어진 수들이 순서대로 더해지거나 빼지는 것이므로 아래 그림과 같이 모든 경우를 직접 구해본다. 첫 번째 입출력 예 numbers에 주어진 수 5가지를 순서대로 더하거나 빼준다. 마지막에 target 값인 3이 나오는 경우가 총 5가지인 것을 확인할 수 있다. 두번째 입출력 예 numbers에 주어진 수 4가지를 순서대로 더하거나 빼준다. 마지막에 target 값인 4가 나오는 경우가 2가지인 것을 확인할 수 있다. 🤨 두 가지의 입출력 예에 대해 직접 그려본 결과 연산한 결과에 대해 계속해서 + 또는 - 연산을 반복..
알고리즘 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 DFS: 시간 초과 DFS를 이용하여 최단거리를 찾고자 하는 경우 완전 탐색 후 가장 작은 값을 선택하여야 하므로 경로가 많아질 수 있고 이렇게 되면 시간 복잡도가 커진다. #include #include #include using namespace std; int map[101][101], ch[101][101], n, m; int dx[4]={1, 0, -1, 0}; int dy[4]={0, 1, 0, -1}; int cnt=1, minn=2147000000; void DFS(int x, int y){ int xx, yy, i; if(x==n && y == m){ if(cnt