알고리즘

    [백준 10971] 외판원 순회 2 C++

    https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제풀이 W[i][j]는 i -> j로 가는 비용을 말합니다. 만약 1, 2, 3 의 도시가 있다면 모든 도시를 모든 방법으로 방문해보면 됩니다. 이 문제는 W[i][i] i,i 즉 자기 자신은 0입니다. 그리고 W[i][j] i -> j로 가는 방법 중에 경로가 없으면 0으로 표시합니다. 이 문제는 경로가 없을 때를 꼭 고려해주어야지만 정답을 맞출 수..

    [백준 10974] 모든 순열 C++

    https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 : N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. 입력 : 첫째 줄에 N(1 n; for (int i = 0; i > a[i]; } go(0); cout

    [백준 10819] 차이를 최대로 C++

    https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 이번 포스트는 백준 문제의 브루트포스 문제 중 하나인 '차이를 최대로'의 문제와 풀이법을 포스팅하려고 합니다. 먼저 문제는 N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |[A[0] - A[1]| + |[A[1] - A[2]| + .... + |[A[N-1] - A[N-1]| 입력 : 첫 째줄 N (3 n; fo..

    [백준 2745] 진법 변환 C++

    https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 이 문제는 B진법을 10진법으로 변환시켜주는 알고리즘이다. 아이디어 우선 어떻게 풀까라는 생각에서, 우리가 프로그래밍 할 때 2진법에서 10진법으로 전환할 때 사용하는 기법을 사용하면 풀 수 있을거라는 생각을 하였다. 예를 들어 1001(2) 이진법인 수를 10진법으로 나타 날 때 1*2^3 + 1 * 2^0으로 계산하여 9(10) 10진수로 나타낼 수 있다. 이와 같이 B진법을 10진법으로 나타내..

    [백준 1978] 소수찾기 C++

    https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net #include #include using namespace std; #define MAX 1001 // 문제에서 1000이하의 자연수 int N; int input_arr[MAX]; // 입력 받을 자연수의 배열 bool Notsosu[MAX]; //소수가 아니라면 true, 소수가 맞다면 false int result; // 총 개수 void calculate_sosu() { Notsosu[0] = true; // 0과 1은 소수가 아님으로 초기값 셋팅 Nots..