땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • 이것이 리눅스다 with Rocky Linux9
  • ㅗ
  • I
  • D
  • E

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

Algorithm/Algorithm Problem

백준 2872 우리집엔 도서관이 있어(그리디)

2022. 6. 8. 16:19

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

 

2872번: 우리집엔 도서관이 있어

상근이는 컴퓨터 공학의 일인자가 되기 위해 책을 매우 많이 구매했다. 하지만, 집에 책장이 없어서 책을 탑처럼 쌓아놓고 있다. 오늘은 오랜만에 상근이가 집에서 휴식을 취하는 날이다. 상근

www.acmicpc.net

개인적으로 어려웠던 문제였다. 여러 케이스들을 직접 돌려보면서 규칙을 찾는데 애를 먹었다. 

여러번 시도 끝에 찾은 규칙은 list를 순차적으로 탐색하면서 std보다 작은 값은 무조껀 앞으로 빼줘야된다는 것이다.

 

ex)

3 1 4 2 5

std = 3

3보다 작은 수는 1,2인데 얘내는 무조껀 앞으로 빼줘야됨.

 

이런 규칙을 찾고 처음에 list,remove, list 이어붙이기 이런걸 썻지만 굳이 리스트를 만들지 않고

만들었다 치고 count만 계산하면 시간복잡도에 이득을 볼 것 같았다(핵심)

 

리스트의 값은 무조껀 1부터 N까지의 숫자이기 때문에 처음 std = 1로 잡아주고

std보다 큰 값을 만났을 때 계산을 해주면 되는데 std보다 +1 만큼 큰 수를 만났을 때는 이동을 안해도 되기 때문에

+1 만큼 큰 수를 std로 갱신하고 탐색을 이어가면 된다.

import sys
input = sys.stdin.readline

n = int(input())
data = []
for _ in range(n):
    data.append(int(input()))
res = 0
std = 1

for i in range(n):
    if data[i] > std:
        if data[i] == std+1:
            std = std+1
            continue
        res += data[i]-std
        std = data[i]
print(res)

 

 

'Algorithm > Algorithm Problem' 카테고리의 다른 글

백준 16112 5차 전직(그리디)  (0) 2022.06.26
백준 9421 소수상근수(소수)  (0) 2022.06.26
백준 16926 배열 돌리기 1(구현) ★  (0) 2022.06.04
백준 1461 도서관(구현, 그리디)  (0) 2022.06.03
백준 16943 숫자 재배치(순열, 구현)  (0) 2022.06.03
    'Algorithm/Algorithm Problem' 카테고리의 다른 글
    • 백준 16112 5차 전직(그리디)
    • 백준 9421 소수상근수(소수)
    • 백준 16926 배열 돌리기 1(구현) ★
    • 백준 1461 도서관(구현, 그리디)
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바