Schoolwork/문제해결기법 4

[C++] 과제 4: 가장 큰 수

길이가 N인 숫자로 된 문자열이 있다. 이 문자열에서 연속한 K개의 숫자로 만들 수 있는 가장 큰 수를 찾는 프로그램을 작성하시오. 예를 들어, 문자열이 "1414213"이고 K=3이라면, 만들 수 있는 수는 141, 414, 142, 421, 213이며 421이 이 중 가장 큰 수이다. .c/.cpp/.java 파일 하나를 제출하시오. 입력 표준 입력으로 입력을 받는다. 첫줄에 두 정수 N과 K가 주어지는데, N은 문자열의 길이로 1 이상 100,000 이하이며, K는 문제에서 설명한 것과 같은 의미로 1 이상 10 이하이다. K가 N보다 큰 경우는 없다. 다음 줄에는 길이가 N인 숫자로 이루어진 문자열이 주어진다. 출력 표준 출력으로 출력한다. 한 줄에 정수 하나를 출력하는데, 이 수는 문제의 조건을..

[C++] 과제 3: 칸 채우기

3 x n 크기의 네모칸이 있다. 이 칸을 3 x 1 크기의 블럭을 이용하여 겹치지 않고 빼꼭하게 채우는 서로 다른 방법의 가짓수를 구하는 프로그램을 작성하시오. 이 문제를 푸는 .c/.cpp/.java 파일 하나를 제출하시오. 예를 들어, n = 1일때는 1가지, n = 2일 때는 1가지, n = 3일 때는 2가지임을 쉽게 알 수 있다. n=3인 경우를 세 블럭 OOO, XXX, MMM으로 채운 두 가지 경우가 아래 그림과 같다. OXM OOO OXM XXX OXM MMM 입력 표준 입력으로 받는다. n을 나타내는 정수 하나가 주어진다. n은 1 이상 45 이하이다. 출력 표준 출력으로 한 줄에 정수 하나를 출력한다. 이 정수는 문제의 조건을 만족하는 가짓수를 나타낸다. 예제 입력 1 1 예제 출력 1..

[C++] 과제 2: 포로 수용소 - Convex Hull 응용

제출은 .c/.cpp/.java 파일 하나만 제출해주세요. 2차원 좌표 (0, 0) 부터 (N, N)로 표현되는 포로 수용소 안에 M명의 포로들이 있다. 포로들은 이 좌표의 정수점 위에 있고, 한 점 위에 두명 이상의 포로가 있는 경우는 없다. 또, 한 직선 위에 세 명 또는 그 이상의 포로가 오는 경우도 없다. 포로들은 이동하지 않는다. 포로를 감시하는 것이 너무 힘들어서, 포로들의 일부에게 다른 포로를 감시하는 권한을 주려고 한다. 가능한 한 가장 적은 수의 포로에게 감시 권한을 주려고 하는데, 한 가지 제약 조건이 있다. 감시 권한이 없는 포로는, 감시 권한이 있는 포로 세 명을 이어서 만들어지는 삼각형 안에 반드시 들어 있어야 한다. 포로 수용소의 크기 N, 포로의 수 M이 주어졌을 때, 감시 권..

반응형