• 티스토리 홈
  • 프로필사진
    2료일
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
2료일
  • 프로필사진
    2료일
    • 분류 전체보기 (118)
      • SWIFT개발 (29)
      • 알고리즘 (25)
      • Design (6)
      • ARkit (1)
      • 면접준비 (32)
      • UIkit (2)
      • Vapor-Server with swift (3)
      • 디자인패턴 (5)
      • 반응형프로그래밍 (12)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 파괴되지 않은 건물 - pYthon
        2023년 06월 19일
        • 2료일
        • 작성자
        • 2023.06.19.:53

        https://school.programmers.co.kr/learn/courses/30/lessons/92344

         

        프로그래머스

        코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

        programmers.co.kr

        ?? 왤캐 쉬워? 하면서 풀었던 문제

        1트

        타입이1이라면 데미지니까 보드에서 디그리만큼 빼주고 아닐경우는 더해주고 보드를 전체적으로 돌아보면서 0보다 크다면 남아있는벽이므로 answer+=1해주었다. 그랫더니 결과는? 두구두구두구...

        def solution(board, skill):
            answer = 0
            for type,r1,c1,r2,c2,degree in skill:
                if type == 1:
                    for i in range(r1,r2+1):
                        for j in range(c1,c2+1):
                            board[i][j]-=degree
                else:
                    for i in range(r1,r2+1):
                        for j in range(c1,c2+1):
                            board[i][j]+=degree
            for i in board:
                for j in i:
                    if(j>0):
                        answer+=1
            return answer

        에라이~ㅋㅋㅋㅋ

        2트시작

        행의 길이 열의길이가 최대 100이라 보고 풀었는데 자세히 보니 1000인 이슈발생!

        보드를 다 탐색하는데에서 시간이 O(n**m)걸리기에 단축시킬 방법을 찾기 시작. 

        사실 생각을 못하겟다. 그래서 누적합이라는 것을 다시 찾아봤다. 

        1. (0,0)에서 2,1)까지 N만큼빼주는 경우임시 테이블을 만들고 이렇게 세팅을 해준다. 

        2. 행의 방향으로 누적합을 해주어 하게 되면 이렇게 된다 .

        3. 그후 열의 방향으로 누적합을 해주면 

        이렇게 임시 테이블이 완성되고 이 완성된것을 우리의 board에 더해주면 끝.

        기존의 방식보다 마지막에 한번만 더해주기에 O(1)시간복잠도

        '알고리즘' 카테고리의 다른 글

        Queue 10845 - swift  (0) 2023.09.05
        1259 - swift로풀기  (0) 2023.09.05
        양궁대회- 22KAKAO Blind(python)  (0) 2023.06.16
        주차요금계산 - 22kakao blind recruitment - python  (0) 2023.06.16
        등산코스정하기-python(kakao22 season)  (0) 2023.06.12
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바