[백준] 1326: 폴짝폴짝 (파이썬)

2024. 10. 7. 23:20·코딩테스트/BOJ

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

난이도: 실버2

▶ 문제 탐색하기

재귀함수를 이용해서 최소한 점프할 수 있는 방법을 탐색한다. 

 

◇ 입력

  1. 징검다리 개수 N (1~10,000 정수)
  2. N개의 징검다리에 쓰여진 자연수 ---> arr =[]
  3. 시작 a번째 징검다리, 도착 b번째 징검다리

 ◇ 원하는 출력 조건

  1.  a번 징검다리에서 b번 징검다리로 최소 몇 번 점프해서 갈 수 있는지? 
  2. 만약 갈 수 없다면 -1 출력  

가능한 시간복잡도 

 

알고리즘 선택

- BFS 알고리즘 사

▶ 코드 설계하기

 1. 가장 먼저, arr[ a-1 ] 시작점 값과 뛰어야하는 전체 거리 ( b-a )를 찾는다. 

 

 2. 만약 전체 거리가 시작점 값으로 나누어 떨어진다면 한 번에 뛰어 건널 수 있다.

①  if (b-a) % arr[a-1] == 0,  return 1

②  else: 나머지가 생긴가면? 극한의 상황을 생각해야하는데

 

 3. a에서 b로 갈 수 없는 경우? return -1

① 시작점 값 arr[ a-1 ] 이 전체 거리 ( b-a ) 보다 클 때

② if (b-a) % arr[a-1] == 0,  return 1

 

▶ 회차별 수정사항

  • 개구리는 앞으로만 움직인다고 생각했는데 그런 조건은 적혀있지 않았다. 앞뒤로 움직일 수 있는 개구리였다
  •  

▶ 정답 코드

from collections import deque

n = int(input())
bridge = [0] + list(map(int, input().split()))
start, end = map(int, input().split())


def bfs(s, e):
    q = deque([s])
    visited = [-1] * (n + 1)
    visited[s] = 0
    while q:
        now = q.popleft()
        for i in range(now, n + 1, bridge[now]): # 오른쪽 방향
            if visited[i] == -1:
                q.append(i)
                visited[i] = visited[now] + 1
                if i == e:
                    return visited[i]
        for i in range(now, 0, -bridge[now]): # 왼쪽 방향
            if visited[i] == -1:
                q.append(i)
                visited[i] = visited[now] + 1
                if i == e:
                    return visited[i]
    return -1 # 찾지 못한 경우


print(bfs(start, end))

 

▶ 추가 풀이

 

'코딩테스트 > BOJ' 카테고리의 다른 글

[백준] 10026: 적록색약  (0) 2024.10.10
[백준]27737번: 버섯농장  (0) 2024.10.10
[백준] 2805: 나무 자르기 (파이썬, 이분 탐색)  (0) 2024.09.23
[백준] 17266: 어두운 굴다리 (파이썬, 이분 탐색)  (0) 2024.09.23
[백준] 2839번: 설탕 배달 (파이썬)  (0) 2024.09.21
'코딩테스트/BOJ' 카테고리의 다른 글
  • [백준] 10026: 적록색약
  • [백준]27737번: 버섯농장
  • [백준] 2805: 나무 자르기 (파이썬, 이분 탐색)
  • [백준] 17266: 어두운 굴다리 (파이썬, 이분 탐색)
뚱이, not a starfish
뚱이, not a starfish
M.S. Student,. Mainly interested in computer vision and autonomous cars
  • 뚱이, not a starfish
    Wilbur-Babo
    뚱이, not a starfish
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • 통신 및 네트워크 (12)
      • Embedded Projects (2)
      • 3D Reconstruction (1)
        • Gaussian Splatting (0)
        • 3D-GS (1)
        • Multi-view Geometry (0)
        • VSLAM (0)
        • Computer Graphics (0)
      • LLM(VLM) (0)
      • AI-Study (28)
        • Mono-Depth (7)
        • Base (2)
        • Computer Vision (1)
        • Image Processing (3)
        • Tiny Object Detection (3)
      • 자율주행 (20)
        • [2023] 1-fifth AA EV (4)
        • [2022] 1-tenth AA EV (2)
        • ROS 1,2 (4)
        • 이론 (7)
        • 실습 (3)
      • Pointcloud (0)
      • sw (16)
        • 정보보안 (1)
        • Android_develop (3)
      • [학부] 전기전자공학 (12)
        • 반도체 (2)
        • 마이크로프로세서 (6)
      • 코딩테스트 (22)
        • BOJ (21)
      • 취준 (21)
        • EVS37 Ambassador (5)
        • 차량 제어 플랫폼 (5)
        • 영어 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자율주행자동차
    자율주행작품
    헤네스유아용자동차
    EVS37
    현대자동차 자율주행 서류 합격 후기
    오픽후기
    현차떨
    심포지움
    evs37 sdv
    자율주행시험
    현대자동차최종면접결과
    현차 3월 신입 서류
    현차 3월 자율주행
    정렬
    tar 파일
    software defined vehicle
    현대자동차최종불합
    현차 자율주행
    현대자동차 자율주행
    헤네스
    현대차3월신입후기
    현대자동차 연구개발
    tar압축풀기
    자율주행
    rc카
    자율주행경진대회
    evs37sdv
    우분투터미널
    현대자동차 서류합격후기
    오블완챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
뚱이, not a starfish
[백준] 1326: 폴짝폴짝 (파이썬)
상단으로

티스토리툴바