1단계.
정수 A, B 가 주어진다. 세로 길이가 A cm, 가로 길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오.
답: a=int(input())
b=int(input())
print(a*b)
a와 b를 입력받고 이후 곱하면 된다. (직사각형 넓이는 가로 곱하기 세로다.)
2단계.
한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
답: x,y,w,h=map(int,input().split())
print(min(x,y,w-x,h-y))
x와 y와 w와 h를 다 받아준다.
이후 x와 y 그리고 구하고자 하는 직사각형의 경제선 (x축은 w에서 x을 뺀 것 / y축은 h에서 y을 뺀 것)을 전부 구해준다.
그럼 4개의 값이 나온다. 이 중 최솟값을 구하면 끝. min 함수로 구해준다.
3단계.
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
답: x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())
x3, y3 = map(int, input().split())
x4, y4 = 0, 0
# x축
if x1 == x2:
x4 = x3
elif x2 == x3:
x4 = x1
elif x1 == x3:
x4 = x2
# y축
if y1 == y2:
y4 = y3
elif y2 == y3:
y4 = y1
elif y1 == y3:
y4 = y2
print(x4, y4)
세 점을 받을 부분을 코드로 작성한다. (x1~x3 / y1~y3)
우리가 출력할 것은 x4와 y4이다. 이후 if문을 돌린다. 어차피 평행을 찾는 것이기에 두 점만 같으면 나머지 점은 같을 수밖에 없다. 이 팩트를 가지고 코드를 작성하면 된다.
4단계.
"한 변의 길이가 1인 정사각형을 아래 그림과 같이 겹치지 않게 빈틈없이 계속 붙여 나간다. 가장 아랫부분의 정사각형이 n개가 되었을 때, 실선으로 이루어진 도형의 둘레의 길이를 구하시오."
가장 아랫부분의 정사각형 개수가 주어지면 그에 해당하는 답을 출력하는 프로그램을 만들어 형석이를 도와주자!
답: n = int(input())
print(n * 4)
이건 노가다를 해보면 안다. 해보면 규칙이 보인다. (마치 고3 규칙 찾는 문제 풀이와 같음..)
n이 1이면 4이고
n이 3이면 12이고
n이 5이면 20이고..
결론
규칙 찾고 싶으면 노가다도 나쁘지 않은 선택이다. 해봐야 보이는 규칙성이 있기 때문.
'백준 (코테)' 카테고리의 다른 글
12. [11단계] 제목: 시간 복잡도 (1~2챕터) (0) | 2024.08.22 |
---|---|
11. [10단계] 제목: 기하: 직사각형과 삼각형 (5~8챕터) (1) | 2024.08.21 |
9. [9단계] 제목: 약수, 배수와 소수 단계 (2) | 2024.08.17 |
8. [8단계] 제목: 일반 수학 1 (1) | 2024.08.16 |
7. [7단계] 제목: 2차원 배열 (0) | 2024.08.15 |