ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [D3] SWEA 17642. 최대 조작 횟수
    SWEA 2024. 4. 28. 02:01

    1. 접근 방식

    일단, a는 더하기만 가능하고

    b는 빼기만 가능하기 때문에

    1)a>b는 불가능하다.

     

    조건을 0부터 1까지 차근차근 보자

    1)a-b=1

    안된다.

    2)a-b=2

    2를 1번 더해주면 된다.

    ex)a,b=2,4 => 2+2=4

    ex)a,b=3,5 => 3+2=5

    3)a-b=3

    ex)a,b=2,5=>2+2+3=5

    2->2번, 3->1번

     

    여기서 a-b=짝수,홀수일 때

    최대 조작 횟수는 (a-b)//2+1을 알 수 있어야 한다.

     

    2. 디테일한 구현

    조건만 정확하게 if-else문으로 구현해주면 된다.

     

    3. 코드 구현

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    if __name__=='__main__':
        sys.stdin=open('input2.txt','r')   
        
        
        t=int(input()) ## 총 테스트 케이스 개수
        
        for tc in range(t):
            a,b=map(int,input().split())
     
            w=(b-a)
            if w<0:
                print(f'#{tc+1} {-1}')
            elif w==0:
                print(f'#{tc+1} {0}')
            elif w==1:
                print(f'#{tc+1} {-1}')
            else:
                res=(w//2)
                print(f'#{tc+1} {res}')
            
    cs

     

     

     

    4. 깨달은 점 및 반성

     

    이 문제도 못 풀었다.

    a,b는 애초에 누가 크고 작은 지 랜덤으로 주어지는 값이었고

    a는 더하고 b는 빼기만 가능하기에

    a>b이면 불가능한 데, 그 경우를 생각 못 했다.

    좀 더, 여유를 가지고 조건을 돌아보는 실력이 되게끔 노력하자

Designed by Tistory.