[Python] 백준 20928 걷는 건 귀찮아

2022. 3. 6. 13:42·CS/알고리즘 & 문제풀이

문제 링크 : https://www.acmicpc.net/problem/20928

 

20928번: 걷는 건 귀찮아

일직선 위에 놓인 $N$개의 지점 $p_i$에는 최대 $x_i$만큼 이동시켜주는 인력거꾼들이 있다. 즉, $p_i$에 있는 인력거꾼은 $p_i$, $p_i+1$, $p_i+2$, $...$, $p_i+x_i$ 중 한 지점까지 승객을 데려다준다.  세상

www.acmicpc.net

 

1. 접근 방법

DP나 큐를 활용한 탐색을 고민했는데, 계속해서 시간 초과되었다.

최대 1,000,000까지 탐색을 해야 돼서 N 또는 2N정도로 해결하는 방법을 찾아야 했다

 

2. 풀이 코드

🖥python 코드 링크 : https://github.com/mintropy/baekjoon_py/blob/master/20000/20928.py

 

GitHub - mintropy/baekjoon_py: BOJ를 Python으로 해결한 코드의 저장소입니다.

BOJ를 Python으로 해결한 코드의 저장소입니다. Contribute to mintropy/baekjoon_py development by creating an account on GitHub.

github.com

📕코드 해설

각 위치별로 최대로 갈 수 있는 위치까지 모두 이동하는 과정을 반복한다.

처음에는 queue를 사용하는 방식도 생각했지만, 가장 오른쪽 위치를 저장하고, 각 위치는 for문을 돌면서 확인했다.

각 위치부터 갈 수 있는 최대 위치까지 저장하며, 2N으로 해결했다.

M위치에 도착하면, 무조건 최소 환승이므로 for문을 종료하고, 또한 각 위치를 한 번도 방문하지 않았는 경우도 종료한다. (더 이상 뒤의 위치로 진행하지 못함)

 

3. 생각 정리

처음부터 시간적인 부분을 고려했다면, 조금 더 빠르게 해결했을 수도 있을 것 같다.

문제를 푸는데 더 집중하다 보니, 오히려 시간과 같은 부분은 별로 신경 쓰지 않고 더 쉬운 방법으로만 풀려고 했던 것 같다. 문제를 어떻게 풀어갈지는 문제의 형식, 입출력도 있지만, 문제의 입력 값의 범위도 크게 영향을 줄 수 있으므로, 조금 더 상세하게 살펴봐야 한다.

'CS > 알고리즘 & 문제풀이' 카테고리의 다른 글

[Python] 백준 13335 트럭  (0) 2022.03.21
[Python] 백준 2866 문자열 잘라내기  (0) 2022.03.13
[Python] 백준 11000 강의실 배정  (0) 2022.02.27
[Python] 백준 13164 행복 유치원  (0) 2022.02.27
[Python] 백준 21924 도시 건설  (0) 2022.02.21
'CS/알고리즘 & 문제풀이' 카테고리의 다른 글
  • [Python] 백준 13335 트럭
  • [Python] 백준 2866 문자열 잘라내기
  • [Python] 백준 11000 강의실 배정
  • [Python] 백준 13164 행복 유치원
mintropy
mintropy
민트로피의 하루하루 오늘보다 더 나은 내일
  • mintropy
    민트로피의 민트초코
    mintropy
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 생각 정리
        • 코딩테스트
        • SSAFY
      • 디지털 노트
        • Obsidian.md
        • Notion
      • CS
        • 알고리즘 & 문제풀이
        • AI
        • DB
        • 디자인패턴
      • Projects
      • Python
        • Python Web Framework
      • JavaScript
        • React.js
      • Docker
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    django
    Combinatorics
    project_zero
    DP
    bfs
    DRF
    조건분기
    알고리즘
    게임이론
    ps
    프로그래머스
    web framework
    dfs
    union-find
    카카오
    회고
    백준
    pydantic
    fastapi
    구현
    line
    Python
    코딩테스트
    SSAFY
    프로젝트
    trie
    그리디
    파이썬
    markdown
    브루트포스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
mintropy
[Python] 백준 20928 걷는 건 귀찮아
상단으로

티스토리툴바