반응형
문제
상근이는 덧셈과 나눗셈을 엄청나게 못한다. 이런 상근이를 위해 정인이는 상근이에게 다음과 같은 문제를 냈다.
정인이는 양의 정수 A,B,C,D로 이루어진 2*2 표를 그렸다.
A | B |
C | D |
위와 같은 표가 있을 때, 표의 값은 A/C + B/D 이다.
상근이는 표를 몇 번 돌리면 표의 값이 최대가 되는지 궁금해졌다.
표는 90도 시계방향으로 돌릴 수 있다.
문제 상단의 표를 1번 회전 시키면 다음과 같다.
C | A |
D | B |
2번 회전 시키면 다음과 같이 된다.
D | C |
B | A |
표에 쓰여 있는 A,B,C,D가 주어졌을 때, 표를 몇 번 회전시켜야 표의 값이 최대가 되는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 공백으로 구분되어 주어진다. 둘째 줄에 C와 D가 공백으로 구분되어 주어진다. 모든 수는 100보다 작거나 같은 양의 정수이다.
출력
첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다.
예제 입력 1 복사
1 2
3 4
예제 출력 1 복사
2
예제 입력 2 복사
5 9
7 2
예제 출력 2 복사
0
예제 입력 3 복사
41 99
100 13
예제 출력 3 복사
1
Rotate 회전을 구현이 필요했다.
[TIP] 배열 돌리기 구현 팁 (cpp, p.. : 네이버블로그
[TIP] 배열 돌리기 구현 팁 (cpp, python)
Intro 배열 돌리기는 구현, 시뮬레이션 유형에서 심심찮게 등장하는 요소입니다. 이번 글에서는 배열 돌리...
blog.naver.com
해당 블로그를 보며 구현을 했다.
a = []
a.append(list(map(int,input().split())))
a.append(list(map(int,input().split())))
idx = 0
m = a[0][0] / a[1][0] + a[0][1] / a[1][1]
for id in range(4):
ret = []
for i in range(2):
tmp = []
for j in range(2):
tmp.append(a[2-1-j][i])
ret.append(tmp)
a = ret
mt = a[0][0] / a[1][0] + a[0][1] / a[1][1]
if m < mt:
m = mt
idx = (id + 1)
print(idx)
반응형
'알고리즘' 카테고리의 다른 글
[BAEKJOON] 30454 얼룩말을 찾아라! (0) | 2025.06.27 |
---|---|
[BAEKJOON] 25932 Find the Twins (0) | 2025.06.26 |
[BAEKJOON] 13297 Quick Estimates (2) | 2025.06.18 |
[BAEKJOON] 15700 타일 채우기 4 (0) | 2025.06.18 |
[BAEKJOON] 4287 Word Ratios (0) | 2025.06.05 |