BOJ

[python] 백준 8911번 - 거북이

yujinkimkim 2023. 1. 29. 14:01

8911번: 거북이 (acmicpc.net)

 

8911번: 거북이

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져

www.acmicpc.net

어제 하다가 잤는데

자꾸 틀렸다고 떠서

구글링 한번 해봤는데

두곳 고쳤더니 해결됐습니당

휴~!


n = int(input())

arr = ""
for i in range(n):
    x = 0
    y = 0
    a = 0
    Xans = [0]
    Yans = [0]
    arr = input()
    for j in arr:
        if j == 'F':
            if (a / 90) % 4 == 0:
                y += 1
            elif (a / 90) % 4 == 1:
                x += 1
            elif (a / 90) % 4 == 2:
                y -= 1
            elif (a / 90) % 4 == 3:
                x -= 1
        elif j == 'B':
            if (a / 90) % 4 == 0:
                y -= 1
            elif (a / 90) % 4 == 1:
                x -= 1
            elif (a / 90) % 4 == 2:
                y += 1
            elif (a / 90) % 4 == 3:
                x += 1
        elif j == 'L':
            if a == 0:
                a += 270
            else:
                a -= 90
        elif j == 'R':
            a += 90

        Xans.append(x)
        Yans.append(y)

    A = max(Xans) + abs(min(Xans))
    B = max(Yans) + abs(min(Yans))


    print(A * B)

일단 저기 A랑 B 구해주는 곳에서

min이 음수일 경우 아닐 경우 막 나눴었는데

생각해보니까 어차피 abs()로 절댓값 나오게끔 해놓으면

min에서 음수가 없을 경우에는 최솟값이 0이니까 굳이 나눌 필요없었고

 

저기 L 입력받는 거에서

그냥 L 입력 받으면 270 더하는 걸로 했는데

0이 아닐 때는 -90 해주는 걸로 하니까 맞았습니다 나왔다

 

대박인점

-> 정답률 50 넘길래 모지 했는데 실버3이었다

김유진이 실버3 푸는 날도 오네용

가리치킨~