[파이썬/python] 백준 - 2597 줄자접기

2025. 8. 6. 18:24·알고리즘
반응형

문제

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


문제 설명

  1.   서로 다른 눈금 6개(빨간 점, 파란 점, 노란 점)가 있는 1cm 간격의 줄자가 존재한다.
  2. 빨간 점, 파란 점, 노란 점 순서로 두 점이 겹치게 줄자를 접는다.
    1. 이 때 이미 두 점이 접혀있으면, 다음 점으로 넘어간다.
  3. 모든 점을 겹치게 접었을때 줄자의 길이를 구한다.   

 


풀이

두 점이 접힐 때 상황을 보자.

 

길이가 10인 줄자가 존재한다.

빨간 점 : 2,7

노란 점 : 3, 10

파란 점 : 4, 5

 

빨간 점을 겹치도록 접으면 (2 + 7) // 2 = 4.5 위치에서 접힌다.

줄자는 4.5, 전체 - 4.5의 길이로 분리가 되고 접혔을 때 전체 길이는 두 길이 중 큰 길이가 될 것이다.

 

위 과정을 3번 반복하게 되면 최종 줄자의 길이가 나오게 된다.  

  1. 세 점을 순서대로 탐색한다.
    1. 이미 두 점이 겹쳐있다면 다음 점으로 넘어간다.
    2. 중앙을 찾고 접혔을 때의 위치를 갱신한다.
    3. 접힌 후 점들의 위치를 갱신한다.
  2. 줄자의 최종 길이를 출력한다.

코드

import sys
input = sys.stdin.readline
length = int(input())
dot = [list(map(int,input().split())) for _ in range(3)]

for i in range(3):
    if dot[i][0] == dot[i][1]:
        continue
    
    mid = sum(dot[i]) / 2
    length = max(length-mid, mid)
    
    for j in range(i+1,3):
        for k in range(2):
            dot[j][k] = abs(dot[j][k]-mid)

print(f'{length:.01f}')

시간복잡도

  • 단순 3번만 반복하기 때문에 약 O(1) (상수) 정도의 시간복잡도가 소요된다.
반응형

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

[파이썬/python] 백준 - 16940 BFS 스페셜 저지  (2) 2025.08.08
[파이썬/python] 백준 - 18234 당근 훔쳐 먹기  (3) 2025.08.07
[파이썬/python] 백준 - 1253 좋다  (2) 2025.08.05
[파이썬/python] 백준 - 1235 학생 번호  (1) 2025.08.04
[파이썬/python] 백준 - 17141 연구소 2  (3) 2025.08.03
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 - 16940 BFS 스페셜 저지
  • [파이썬/python] 백준 - 18234 당근 훔쳐 먹기
  • [파이썬/python] 백준 - 1253 좋다
  • [파이썬/python] 백준 - 1235 학생 번호
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (162) N
      • SW 마에스트로 (0)
      • 알고리즘 (125) N
      • CS (13)
      • Java (6) N
      • 자기개발 (18)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    springboot
    OS
    알고리즘
    작심삼일 챌린지
    completablefuture
    async
    java
    JPA
    파이썬
    컴퓨터구조
    Redis
    컴퓨터 구조
    SMTP
    백준
    python
    인프런
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 - 2597 줄자접기
상단으로

티스토리툴바