[백준] 4153, 5430 - Python3

shsh·2021년 10월 25일
0

Mock

목록 보기
93/93

4153. 직각삼각형

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

내 풀이 - 성공

from sys import stdin

while True:
    a, b, c = map(int, stdin.readline().split())
    if a == 0 and b == 0 and c == 0:
        break
    if a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
        print("right")
    else:
        print("wrong")

a, b, c 를 입력받아 피타고라스의 정리를 만족하는지 확인

모두 0 이면 break


5430. AC

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

내 풀이 - 성공

from sys import stdin

T = int(stdin.readline())

for _ in range(T):
    p = list(stdin.readline().strip())
    n = int(stdin.readline())
    arr = stdin.readline().strip()
    s = 0
    e = n-1
    flag = 1
    for rd in p:
        if rd == "R":
            flag = 0 if flag else 1
        else:
            n -= 1
            if n < 0:
                break
            if flag:
                s += 1
            else:
                e -= 1
    if n >= 0:
        arr = arr[1:-1]
        arr = arr.split(",")
        arr = arr[s:e+1]
        if flag == 0:
            arr.reverse()
        print("["+",".join(arr)+"]")
    else:
        print("error")

R 은 flag 로 판단하도록 하고 (1 : 정방향, 2 : 역방향)
D 는 s, e 인덱스를 이용해서 flag 상태에 따라 삭제 진행

n 의 개수보다 더 많은 삭제를 요구하면 break 해서 error print

나머지는 s, e 를 기반으로 arr 슬라이싱
우선 arr 은 string 형태이므로 양 끝에 [ ] 삭제 후, 쉼표 기준으로 숫자들만 리스트 형태로 분리
flag 가 0 이면 역방향이므로 reverse() 해주기
[n,n] 의 형태로 출력

profile
Hello, World!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN