[파이썬] 2477번. 참외밭 풀이

2023. 2. 13. 18:18·알고리즘과 코딩 테스트/백준 25단계

문제에 나올 수 있는 도형의 모양은, 무조건 변이 6개이므로 큰 사각형에서 작은 사각형을 뺀 모양이다.

K = int(input())

input_list = []
for _ in range(6):
    input_list.append(list(map(int, input().split())))

 

큰 사각형의 넓이는

방향이 동쪽, 서쪽(1, 2)인 것중에 큰 값과 -> 가로

남쪽, 북쪽(3, 4)인 것중에 큰 값 -> 세로를 곱하면 된다.

max_width = 0
max_height = 0
for i in range(6):
    if (input_list[i][0] == 1 or input_list[i][0] == 2):
        if (input_list[i][1] > max_width):
            max_width = input_list[i][1]
    elif (input_list[i][0] == 3 or input_list[i][0] == 4):
        if (input_list[i][1] > max_height):
            max_height = input_list[i][1]

 

작은 사각형의 넓이는

만약 6번의 방향 배열이 (4, 2, 3, 1, 3, 1)이라면

이 중에 (3, 1)이 두 번 반복되었고, 이러한 패턴은 어떤 문제든 유일하게, 무조건 나타난다는 것을 알 수 있다.

그러면 이 (3, 1, 3, 1)에서 가운데 부분인 (1, 3)이 각각 작은 사각형의 가로, 세로가 된다.

심지어 배열이 (3, 1, 4, 2, 3, 1)인 상황에도 리스트의 음수 인덱싱을 통하여 이런 규칙을 찾을 수 있게 하였다.

direct_list = [input_list[i][0] for i in range(6)]
(sub_x, sub_y) = (0, 0)

for i in range(6):
    if (direct_list[-3 + i] == direct_list[-1 + i]):
        if (direct_list[-2 + i] == direct_list[i]):
            (sub_x, sub_y) = (input_list[-2 + i][1], input_list[-1 + i][1])

result = (max_width * max_height - sub_x * sub_y) * K
print(result)

 


https://www.acmicpc.net/problem/2477

 

2477번: 참외밭

첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지

www.acmicpc.net

 

'알고리즘과 코딩 테스트 > 백준 25단계' 카테고리의 다른 글

[파이썬] 2004번. 조합 0의 개수 풀이  (0) 2023.02.24
[파이썬] 9375번. 패션왕 신해빈 풀이  (0) 2023.02.22
[파이썬] 2981번. 검문 풀이  (1) 2023.02.21
[파이썬] 1002번. 터렛 풀이  (0) 2023.02.20
[파이썬] 3009번. 네 번째 점 풀이  (0) 2023.02.12
'알고리즘과 코딩 테스트/백준 25단계' 카테고리의 다른 글
  • [파이썬] 9375번. 패션왕 신해빈 풀이
  • [파이썬] 2981번. 검문 풀이
  • [파이썬] 1002번. 터렛 풀이
  • [파이썬] 3009번. 네 번째 점 풀이
달거달거
달거달거
개발자를 꿈꿉니다
  • 달거달거
    SWEE IT
    달거달거
  • 전체
    오늘
    어제
    • 분류 전체보기 (288)
      • 개발 환경 (5)
        • VSCode (1)
        • 파이썬 (Anaconda) (1)
        • Git (1)
        • Flutter (0)
        • Kotlin (1)
      • Spring (5)
        • 스프링 부트와 JPA 실무 완전 정복 로드맵 (2)
        • 스프링 부트와 AWS로 구현하는 웹 서비스 (1)
        • 채쌤의 스프링 부트 프로젝트 (1)
      • 알고리즘과 코딩 테스트 (16)
        • 파이썬 문법 (2)
        • 백준 25단계 (10)
        • 프로그래머스 코딩 테스트 고득점 Kit (1)
        • 코틀린 문법 (1)
      • 요리 (236)
      • 데이터베이스 (2)
        • MySQL (2)
      • 안드로이드 (11)
        • 연습 코드 (6)
        • 도서 내용 정리 (4)
      • Dart와 Flutter (5)
        • 도서 내용 정리 (4)
        • Flutter 위젯 정리 (1)
        • 15개 프로젝트 (2)
      • 피그마 (0)
        • 도서 내용 정리 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DART
    티스토리챌린지
    AWS
    Flutter
    vscode
    프로그래머스
    node.js
    데이터베이스
    docker
    백준
    코틀린
    spring
    c++
    알고리즘
    아나콘다
    JPA
    문법
    git
    주석
    자취요리
    피그마
    안드로이드
    오블완
    C
    머신러닝
    파이썬
    코딩 테스트
    mysql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
달거달거
[파이썬] 2477번. 참외밭 풀이
상단으로

티스토리툴바