😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[1011번] Fly me to the Alpha Centauri / python3 (공책에 써보면서 규칙찾기)

또방91 2021. 11. 17. 17:22
728x90

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

 

1011번: Fly me to the Alpha Centauri

우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행

www.acmicpc.net

연습장에 최소 2장이상은 써가면서 규칙을 찾아야 문제를 풀 수있을거라 말한다......😣


❌ 1차시도 실패

마지막에 1로 끝내려면 서서히 거리를 줄여나가는 걸 생각못하고

그냥 마지막에 1만 넣어놓고 거리를 늘려가다가 빡1로 끝내는 이상한 식을 세워버렸다..

나처럼 실수하질 않기 바라며....!


❓ 정답은 ??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
t=int(input())
 
for _ in range(t):
    x,y=map(int,input().split())
    거리=y-x
    n=1
    while True:
        if 거리>n*(n+1):
            n+=1
        else#거리<=n*(n+1)
            #거리는 n그룹에 있음
            if 거리<=(n**2): #->n그룹의 상단
                print(n*2-1)
                break
            else#거리>(n**2) ->n그룹의 하단 
                print(n*2)
                break
cs

💯 풀이 과정

무지성으로 1~12까지만 써봤는데.... 하...짜증나 이럴 게 아니다.

최소 20까지는 써봐야 규칙이 보인다.. ㅋㅋㅋㅋ

거리 길이
(y-x)
이동 경로 이동횟수 갯수 설명
1 1 1 1 1그룹 끝점 2*1개

1과 2 구분점 1**1 
2 11 2 1
3 111 3 2 2그룹 끝점 2*3개

3과 4 구분점 2**2
4 121 3
5 1211 4 2
6 1221 4
7 12211 5 3 3그룹 끝점 3*4개

5와 6 구분점 3**2
8 12221 5
9 12321 5
10 123211 6 3
11 123221 6
12 123321 6
13 1233211 7 4 4그룹 끝점 4*5개

7과 8 구분점 4**2

14 1233221 7
15 1233321 7
16 1234321 7
17 12343211 8 4
18 12343221 8
19 12343321 8
20 12344321 8

즉!!!

1) 일단 어느 그룹에 속하는지 찾고

2) 그룹에 상단인지 하단인지 확인하는 방법을 사용한다.


😎오늘의 한줄평: 너무 복잡복잡쓰..... 12까지 밖에 안써보고 포기했다가.... 다시 써봤는데 이런 규칙이..

728x90