당니이
다은이의 컴퓨터 공부
당니이
전체 방문자
오늘
어제
  • 분류 전체보기 (140)
    • Achieved 👩🏻 (14)
      • 생각들 (2)
      • TIL (6)
      • Trial and Error (1)
      • Inspiration ✨ (0)
      • 미국 박사 준비 🎓 (1)
    • Computer Vision💖 (39)
      • Basic (9)
      • Video (5)
      • Continual Learning (7)
      • Generative model (2)
      • Domain (DA & DG) (5)
      • Multimodal (8)
      • Multitask Learning (1)
      • Segmentation (1)
      • Colorization (1)
    • RL 🤖 (4)
    • Autonomous Driving 🚙 (11)
      • Geometry (4)
      • LiDAR 3D Detection (1)
      • Trajectory prediction (2)
      • Lane Detection (1)
      • HDmap (3)
    • Linux (15)
    • PyTorch👩🏻‍💻 (10)
    • Linear Algebra (2)
    • Python (5)
    • NLP (11)
      • Article 📑 (1)
    • Algorithms 💻 (22)
      • Basic (8)
      • BAEKJOON (8)
      • Programmers (2)
    • ML (1)
      • 통계적 머신러닝(20-2) (1)
    • SQL (3)
    • 기초금융 💵 (1)

블로그 메뉴

  • 홈
  • About me

공지사항

인기 글

태그

  • continual learning
  • LLM
  • conda
  • 알고리즘
  • 코딩테스트
  • til
  • 리눅스
  • NLP
  • 자료구조
  • CV
  • 백준
  • Incremental Learning
  • domain adaptation
  • CL
  • Python
  • dfs
  • 백트래킹
  • Linux
  • domain generalization
  • pytorch

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
당니이

다은이의 컴퓨터 공부

[백준] 캥거루 세마리2 (Python) - Greedy
Algorithms 💻/BAEKJOON

[백준] 캥거루 세마리2 (Python) - Greedy

2022. 1. 8. 17:02
반응형

# 문제

캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다.
한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다.
한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다.

캥거루는 최대 몇 번 움직일 수 있을까?


# 입출력

여러개의 테스트케이스가 주어질 수 있는 상황임을 주의할 것 


# Idea

이 문제의 가장 중요한 부분은 "최대 몇 번 움직일 수 있는지" 출력해야한다는 것! 
이러한 조건 때문에 아래와 같은 만족해야할 두가지 필요충분조건이 생긴다. 

1. 초기 위치 A, B, C 중에서 바깥 A, C 중 이동해야할 element를 정할 때는 A&B와 B&C 사이의 거리의 대소를 정해야한다.
2. 만약 A가 이동하기로 했다면, B와 C의 사이 중 B나 C의 바로 인접한 숫자에 이동해야 최대 횟수를 만들 수 있다. 

결과적으로, 두 요소의 거리 중 최댓값의 거리에서 -1을 한 것이 문제에서 리턴해야 할 답이 된다. 


# Code

## input test case의 개수가 정해지지 않았기 때문에 while 문을 사용한다 
while True : 

  # input이 주어질 때 
  try : 
    a, b, c = map(int, input().split())    # 세 캥거루의 위치 
    result = max(b-a, c-b)    # 두 사이 중 가장 큰 값을 result에 할당 
    print(result - 1)

  # input이 주어지지 않을 때 
  except : 
    break

 

반응형
저작자표시 (새창열림)

'Algorithms 💻 > BAEKJOON' 카테고리의 다른 글

[백준] N-Queens 문제(Python) - 백트래킹  (2) 2022.04.27
[백준] 1,2,3 더하기(Python) - 백트래킹 & 1차원 dfs 탐색  (0) 2022.04.20
[백준] 로또(Python) - 백트래킹 & 1차원 dfs 탐색  (0) 2022.04.07
[백준] 에디터(Python) - Stack  (0) 2022.03.26
[백준] 우유축제 (Python) - Greedy  (0) 2022.01.08
    'Algorithms 💻/BAEKJOON' 카테고리의 다른 글
    • [백준] 1,2,3 더하기(Python) - 백트래킹 & 1차원 dfs 탐색
    • [백준] 로또(Python) - 백트래킹 & 1차원 dfs 탐색
    • [백준] 에디터(Python) - Stack
    • [백준] 우유축제 (Python) - Greedy
    당니이
    당니이
    씩씩하게 공부하기 📚💻

    티스토리툴바