일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- react native accessible
- c++ using
- 싸이월드
- html
- c++ 정보은닉
- 리액트 네이티브 맥
- 스탠실 버퍼 사용
- react native mac
- unity stencil buffer
- 스탠실 버퍼 튜토리얼
- CSS
- 벡터와 리스트의 차이
- Expo
- react native typescript
- react native ios 기기 연결
- cyworld
- react native typescript navigate
- javascript
- react native
- GitHub
- node
- 스탠실 버퍼 시작
- C++
- react native typescript navigation
- node.js
- stencil buffer
- react-native
- 리액트 네이티브 설치 오류
- react native 타입스크립트
- react
Archives
- Today
- Total
혀니의 이거저거 뿌시기
2477 참외밭 본문
728x90
2477번: 참외밭
첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지
www.acmicpc.net
N = int(input())
lst=[]
x, y = 0, 0
for i in range(6):
a, b = map(int, input().split())
lst.append([a, b])
for i in range(6):
if lst[i][0] == 4 or lst[i][0] == 3:
if lst[i][1] > y:
y = lst[i][1]
elif lst[i][0] == 2 or lst[i][0] == 1:
if lst[i][1] > x:
x = lst[i][1]
for i in range(6):
if lst[i][0] == lst[(i + 2) % 6][0]:
if lst[(i + 1) % 6][0] == lst[(i + 3) % 6][0]:
small = lst[(i + 1) % 6][1] * lst[(i + 2) % 6][1]
print(N * (x * y - small))
오랜만에 또 안 보고 맞은 문제,, 하지만 엄청 오래걸림 거의 한시간 근접
육각형이고 방향도 정해져있고 그 모양도 한정되어있다는 것이 힌트였고..
연속해서 등장하는 숫자들이 같을때 그것으로 작은 밭크기를 구해야 했었다.
계속 고민을 하다가.. i == (i % 6) + 2 and (i+1) % 6 == (i+3) % 6같은 식으로 하면 쉽게 구할 수 있다는 것을 깨달음..
아이디어를 빨리 떠올리는 것이 중요한 것 같다.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
백준 15649 N과 M(1) (0) | 2022.08.24 |
---|---|
1018 체스판 다시 칠하기 (0) | 2022.08.22 |
1181 단어 정렬 (0) | 2022.08.17 |
11650 좌표 정렬하기 (0) | 2022.08.16 |
10845 큐 (0) | 2022.08.16 |