문제

평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으며, 변이나 꼭짓점이 겹칠 수도 있다.

이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오.

 

좌표 평면을 이차원 배열로 뒤집어서 생각하였다.

숫자 그대로 이차원 배열에 넣으면 좌표 평면보다 면적이 크게 잡혀서 오른쪽 아래의 꼭지점은 [r-1][c-1]로 생각하였다.

 

문제

2차원 평면 제 1사분면 위의 격자점 (x,y)에 위 그림과 같이 대각선 순서로 점에 수를 붙인다.

점 (x,y)에 할당된 수는 #(x,y)로 나타낸다.

예를 들어 #(1,1) = 1, #(2,1)=3, #(2,2) = 5, #(4,4) = 25이다.

반대로 수 p가 할당된 점을 &(p)로 나타낸다.

예를 들어 &(1) = (1,1), &(3) = (2,1), &(5) = (2,2), &(25) = (4,4)이다.

두 점에 대해서 덧셈을 정의한다. 점 (x,y)와 점 (z,w)를 더하면 점 (x+z, y+w)가 된다.

즉, (x,y) + (z,w) = (x+z, y+w)로 정의한다.

우리가 해야 할 일은 수와 수에 대한 새로운 연산 ★를 구현하는 것으로, p★q는 #(&(p)+&(q))으로 나타난다.

예를 들어, &(1)=(1,1), &(5) = (2,2)이므로, 1★5 = #(&(1)+&(5)) = #((1,1)+(2,2)) = #(3,3) = 13이 된다.


 

'Algorithm > SW Expert Academy' 카테고리의 다른 글

스도쿠검증_SWEA1974  (0) 2020.09.07
농작물수확하기_SWEA2805  (0) 2020.09.05
준환이의양팔저울 _SWEA3234  (0) 2020.08.30

문제

  • 스도쿠는 숫자퍼즐로, 가로 9칸 세로 9칸으로 이루어져 있는 표에 1 부터 9 까지의 숫자를 채워넣는 퍼즐이다.

  • 같은 줄에 1 에서 9 까지의 숫자를 한번씩만 넣고, 3 x 3 크기의 작은 격자 또한, 1 에서 9 까지의 숫자가 겹치지 않아야 한다.

  • 입력으로 9 X 9 크기의 스도쿠 퍼즐의 숫자들이 주어졌을 때, 위와 같이 겹치는 숫자가 없을 경우, 1을 정답으로 출력하고 그렇지 않을 경우 0 을 출력한다.

[제약 사항]

1. 퍼즐은 모두 숫자로 채워진 상태로 주어진다.

2. 입력으로 주어지는 퍼즐의 모든 숫자는 1 이상 9 이하의 정수이다.

'Algorithm > SW Expert Academy' 카테고리의 다른 글

수의 새로운 연산_SWEA1493  (0) 2020.09.10
농작물수확하기_SWEA2805  (0) 2020.09.05
준환이의양팔저울 _SWEA3234  (0) 2020.08.30

문제

상근이는 변의 길이가 1인 정사각형 n개를 가지고 있다. 이 정사각형을 이용해서 만들 수 있는 직사각형의 개수는 총 몇 개일까?

두 직사각형 A와 B가 있을 때, A를 이동, 회전시켜서 B를 만들 수 없으면, 두 직사각형은 다르다고 한다. 직사각형을 만들 때, 정사각형을 변형시키거나, 한 정사각형 위에 다른 정사각형을 놓을 수 없다. 또, 직사각형은 정사각형으로 꽉 차있어야 한다.

 

 

<조건>

1. 농장은 N*N 크기로 크기는 항상 홀수이다. (1<= N <=49)

2. 수확은 항상 농장에 딱 맞는 정사각형 마름모로 형태로만 가능하다.

3. 농작물의 가치는 0~5이다.

 

'Algorithm > SW Expert Academy' 카테고리의 다른 글

수의 새로운 연산_SWEA1493  (0) 2020.09.10
스도쿠검증_SWEA1974  (0) 2020.09.07
준환이의양팔저울 _SWEA3234  (0) 2020.08.30

Prim방법

  1. 임의 정점을 하나 선택해서 시작한다.

  2. 선택한 정점과 인접하는 정점들 중의 최소 비용의 간선이 존재하는 정점을 선택한다.

  3. 모든 정점이 선택될 때까지 1,2번 과정을 반복해서 실행한다.


Kruskal방법

  1. 그래프 간선들을 가중치의 오름차순으로 정렬한다.

  2. 정렬된 간선 리스트에서 순서대로 간선 선택(사이클이 형성되지 않는)한다.

    • 가중치가 제일 낮은 간선 선택

    • 사이클이 형성되면 다음 간선 선택

  3. 해당간선을 집합에 추가한다, N-1개의 간선이 될 때까지 반복한다.


'Algorithm > SW Expert Academy' 카테고리의 다른 글

수의 새로운 연산_SWEA1493  (0) 2020.09.10
스도쿠검증_SWEA1974  (0) 2020.09.07
농작물수확하기_SWEA2805  (0) 2020.09.05

+ Recent posts