HelloMinchan
처음처럼
HelloMinchan
LinkedIn
전체 방문자
오늘
어제
  • 분류 전체보기 (306)
    • Backend (4)
      • NestJS (1)
      • Express (1)
      • Spring (2)
    • Infrastructure (1)
      • AWS (1)
    • Frontend (1)
      • Next.js (1)
    • Language & Runtime (4)
      • Java (2)
      • Node.js (2)
    • Computer Science (8)
      • Computer Networks (3)
      • Operating Systems (4)
      • OOP (1)
    • 독서 (4)
      • 데이터 중심 애플리케이션 설계 (3)
      • 객체지향의 사실과 오해 (1)
    • 회고 (4)
      • Project (2)
      • Career (2)
    • Deprecated (280)

채널

  • GitHub
  • LinkedIn

최근 글

태그

  • 프로그래밍
  • Baekjoon Online Judge
  • back-end
  • 알고스팟Python
  • 개발자
  • 프로그래머스C++
  • 백엔드
  • 백준Python
  • 데이터베이스
  • programmers
  • Database
  • 프로그래머스Python
  • 백준Go
  • 코딩
  • 백준
  • 백준C++
  • 알고스팟
  • front-end
  • Algospot
  • 프로그래머스

최근 댓글

인기 글

hELLO
HelloMinchan

처음처럼

[LeetCode] 리트코드 807번 Max Increase to Keep City Skyline(Python)
Deprecated

[LeetCode] 리트코드 807번 Max Increase to Keep City Skyline(Python)

2020. 3. 17. 19:59

Copyright © 2020 LeetCode

[LeetCode] 리트코드 807번 Max Increase to Keep City Skyline

(Python)

(글쓴날 : 2020.03.17)

 


* LeetCode, 리트코드 7번 문제 Python 언어 풀이입니다.

* 소스 코드의 저작권은 글쓴이에게 있습니다.


 

 

리트코드 807번 Max Increase to Keep City Skyline


1) 문제

문제 링크 : https://leetcode.com/problems/max-increase-to-keep-city-skyline/

 

Max Increase to Keep City Skyline - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


2) 풀이 과정

빌딩들의 높이가 저장되어 있는 2차원 배열(Python의 경우 리스트)이 주어지고,

해당 배열을 행과 열을 기준 삼아 사각형 형태로 정렬하여, 행을 기준으로 제일 높은 빌딩들의 높이(스카인라인)들과, 열을 기준으로 제일 높은 빌딩들의 높이(스카이라인)들이 변하지 않을 정도로만 나머지 모든 빌딩들의 높이를 최대로 높였을 때 변한 높이의 총합을 구하는 문제입니다.

 

저의 경우, 행을 기준으로 제일 높은 빌딩들과 열을 기준으로 제일 높은 빌딩들을 리스트화하여 각각의 스카이라인을 구한 후 반복문을 통해 모든 빌딩들의 높이를 스카이라인에 벗어나지 않을 정도의 최대 높이로 높이면서 변화된 총 높이를 구해 문제를 해결하였습니다.


3) 코드

 

* Python 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution:
 
    def maxIncreaseKeepingSkyline(self, grid: List[List[int]]) -> int:
        tot = 0
        
        lrSkyline = [max(height) for height in grid]
        udSkyline = [max(height) for height in zip(*grid)]
            
        for i, arr in enumerate(grid):
            for j, height in enumerate(arr):
                limit = min(lrSkyline[i], udSkyline[j])
                if limit > height:
                    tot += limit - height
                    
        return tot

 

저작자표시 비영리 변경금지

'Deprecated' 카테고리의 다른 글

[Baekjoon Online Judge] 백준 11654번 아스키 코드(Python)  (0) 2020.03.22
한 학기 휴학 결정... 그리고 각오  (4) 2020.03.21
[Baekjoon Online Judge] 백준 14681번 사분면 고르기(Python)  (3) 2020.03.17
[Baekjoon Online Judge] 백준 10996번 별 찍기 - 21(Python)  (0) 2020.03.14
[Baekjoon Online Judge] 백준 2446번 별 찍기 - 9(Python)  (0) 2020.03.14
    'Deprecated' 카테고리의 다른 글
    • [Baekjoon Online Judge] 백준 11654번 아스키 코드(Python)
    • 한 학기 휴학 결정... 그리고 각오
    • [Baekjoon Online Judge] 백준 14681번 사분면 고르기(Python)
    • [Baekjoon Online Judge] 백준 10996번 별 찍기 - 21(Python)
    HelloMinchan
    HelloMinchan
    Though you should not fear failure, You should do your very best to avoid it.

    티스토리툴바