[Python] 백준 #15724 - 주지수[try_again]-ing

2022. 3. 2. 18:46·코딩테스트/백준[Python]

문제


 

15724번: 주지수

네모 왕국의 왕인 진경대왕은 왕국의 영토를 편하게 통치하기 위해서 1X1의 단위 구역을 여러 개 묶어서 하나의 거대 행정구역인 주지수(州地數, 마을의 땅을 셈)를 만들 예정이다. 진경대왕은

www.acmicpc.net

코드


My answer(Wrong answer)

import sys
input=sys.stdin.readline

n,m=map(int,input().split())
land=[[0 for i in range(n)] for j in range(m)]
dp=land.copy()
dp[0][0]=land[0][0]
for i in range(n):
    land[i]=list(map(int,input().split()))
t=int(input())
for i in range(n):
    for j in range(m):
        if(i==0 or j==0):
            if(i==0 and j==0):dp[i][j]=land[0][0]
            elif(i==0):
                dp[i][j]=dp[i][j-1]+land[i][j]
            else:
                dp[i][j]=dp[i-1][j]+land[i][j]
        else:
            dp[i][j]=land[i][j]+dp[i][j-1]+dp[i-1][j]-dp[i-1][j-1]
for i in range(t):
    tmp=list(map(int,input().split()))
    a,b=tmp[2]-1,tmp[3]-1
    print(dp[a][b])

Another answer

import sys
input = sys.stdin.readline

n,m = map(int,input().split())
area = [list(map(int,input().split())) for _ in range(n)]

dp = [[0]*(m+1) for _ in range(n+1)]
for i in range(1,n+1):
    for j in range(1,m+1):
        dp[i][j] = area[i-1][j-1] + dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]

for _ in range(int(input())):
    x,y,i,j = map(int,input().split())
    print(dp[i][j] - dp[x-1][j] - dp[i][y-1] + dp[x-1][y-1])

풀이

우선 내 풀이는 틀렸는데, 내가 구현한게 뭔질 모르겠다. 나도 아래코드와 같은 점화식을 구했고 나랑 아래 코드와 다른점은 나는 dp라는배열에 구하고자하는 행,열 값을 입력하면 바로 결과가 나오게 계속해서 계산을 해줬는데 아래 코드는 누적합?방식이라서 구하고자하는 행,열값을 입력하고 무언가를 빼줬다...사실 문제도 정확하게 이해를 못하겠다. 입력값에 1,1,3,2를 입력해줬는데 앞의 1,1이 무엇을 의미하는지가 제대로 설명이 안되어있다. 그래도 점화식이 똑같고 테스트케이스가 다 돌아가는걸로 봐서는 코드자체가 문제가 아니라 그냥 뭔갈 잘못이해해서 반례가 생기는 것 같은데 그게 뭔지를 모르겠다. 나중에 질문글에 답변이 오면 수정하겠다...

728x90

'코딩테스트 > 백준[Python]' 카테고리의 다른 글

[Python] 백준 #14916- 거스름돈  (0) 2023.08.23
[Python] 백준 #1343- 폴리오미노  (0) 2023.08.23
[Python] 백준 #18115 - 카드 놓기[try_again]  (0) 2022.03.02
[Python] 백준 #9375 - 패션왕 신해빈  (0) 2022.03.01
[Python] 백준 #1302 - 베스트셀러  (0) 2022.03.01
'코딩테스트/백준[Python]' 카테고리의 다른 글
  • [Python] 백준 #14916- 거스름돈
  • [Python] 백준 #1343- 폴리오미노
  • [Python] 백준 #18115 - 카드 놓기[try_again]
  • [Python] 백준 #9375 - 패션왕 신해빈
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    그리디
    이것이취업을위한코딩테스트다
    백준
    DFS
    이코테
    나동빈
    이분탐색
    dp
    BFS
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바