목록[c언어&c++] 알고리즘 공부/인프런(Inflearn) (37)
아무거나 내꺼 공부할래
▣ 문제 가중치 방향그래프가 주어지면 1번 정점에서 N번 정점으로 가는 최소비용을 출력하는 프로그 램을 작성하세요. ▣ 입력설명 - 첫째 줄에는 정점의 수 N(1
▣ 문제 7*7 격자판 미로를 탈출하는 경로의 가지수를 출력하는 프로그램을 작성하세요. 출발점은 격 자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 통로이다. 격 자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면 출발 도착 위의 지도에서 출발점에서 도착점까지 갈 수 있는 방법의 수는 8가지이다. ▣ 입력설명 - 첫 번째 줄부터 7*7 격자의 정보가 주어집니다. ▣ 출력설명 - 첫 번째 줄에 경로의 가지수를 출력한다. ▣ 입력 예시 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 ▣ 출력 예시 8 #pragma warning(..
▣ 문제 방향그래프가 주어지면 1번 정점에서 N번 정점으로 가는 모든 경로의 가지 수를 출력하는 프 로그램을 작성하세요. 아래 그래프에서 1번 정점에서 5번 정점으로 가는 가지 수는 총 6 가지입니다. ▣ 입력설명 - 첫째 줄에는 정점의 수 N(1
▣ 문제 - N개의 원소로 구성된 자연수 집합이 주어지면, 집합의 원소와 ‘+’, ‘-’ 연산을 사용하여 특정 수인 M을 만드는 경우가 몇 가지 있는지 출력하는 프로그램을 작성하세요. 각 원소는 연산에 한 번만 사용합니다. 예를 들어 {2, 4, 6, 8}이 입력되고, M=12이면 2+4+6=12 4+8=12 6+8-2=12 2-4+6+8=12 로 총 4가지의 경우가 있습니다. 만들어지는 경우가 존재하지 않으면 -1를 출력한다. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1
▣ 문제 - N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요. 예를 들어 {1, 3, 5, 6, 7, 10}이 입력되면 {1, 3, 5, 7} = {6, 10} 으로 두 부분집합의 합이 16으로 같은 경우가 존재하는 것을 알 수 있다. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1
▣ 문제 자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램 을 작성하세요. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1
A도시에서 출발한 기차는 B도시로 도착한다. 그런데 도로 중간에 T자형 교차로가 있어 출발한 기차의 도착 순서를 조정할 수 있다. 교차로 A도시 B도시 교차로에서는 다음과 같은 두 개의 작업을 합니다. P(push)작업 : A도시에서 오는 기차를 교차로에 넣는다. O(out)작업 : 교차로에 들어온 가장 최근 기차를 B도시로 보낸다. 만약 2 1 3 기차 번호 순으로 A도시에서 출발하더라도 B도시에는 T교차로를 이용하여 1 2 3 순으로 도착하게 할 수 있습니다. 그 작업 P, P, O, O, P, O순으로 작업을 하면 B도시에 1, 2, 3 순으로 도착합니다. 1부터 N까지 번호를 가진 기차가 A도시에서 어떤 순으로 출발하든, B도시에 번호순으로 도착 하도록 하는 교차로 작업을 출력합니다. 모든 기차는..
▣ 문제 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. ▣ 입력설명 - 첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다. ▣ 출력설명 - 첫 번째 줄에 YES, NO를 출력한다. ▣ 입력 예시 (()(()))(() ()()(()()) ▣ 출력 예시 NO YES #pragma warning(disable:4996) #include int stack[30]; int top = -1; void push(int x) { stack[++top] = x; } void pop() { stack[top--]; } int main() { char str[30]; ..