[백준] 10157번 자리배정 - 파이썬/구현

JinUk Lee·2023년 1월 25일
0

백준 알고리즘

목록 보기
26/78

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



C,R = map(int,input().split()) # 7 6

K = int(input())

ans_list = []
t = 1

if K>C*R:
    print(0)

elif K==C*R and C%2==1 and R%2==1:
    print( (C//2)+1,(R//2)+1   )

else:

    for j in range(int(min(C,R)//2)):
        for i in range(t,R):
            ans_list.append((t,i))

        for i in range(t,C):
            ans_list.append((i,R))

        for i in range(R,t,-1):
            ans_list.append((C,i))

        for i in range(C,t,-1):
            ans_list.append( (i,t) )

        R=R-1
        C=C-1
        t=t+1

    if R-t==0:
        for u in range(C-R+1):
            ans_list.append( ( t+u,t ) )

    if C-t==0:
        for x in range(R-C+1):
            ans_list.append((t,t+x) )

    print(*ans_list[K-1])

빈 리스트에 테두리를 순환하면서 좌표를 넣어주었다.

그런데 인덱스오류가 발생했다.

이런 식으로 남는 부분이 리스트에 들어가지 않았다.

그래서 반복이 끝나고 해당 부분을 추가해주는 식으로 처리하였다.

profile
개발자 지망생

0개의 댓글