[백준] 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개의 댓글

관련 채용 정보