첫번째 코드
먼저 헷갈리지 않게 input을 잘 정리해서 집어넣는다.
그리고 나는 이 문제를 읽고 나머지를 생각하였다.
최대로 나올 수 있는 문자열의 개수는 n * m개이다.
문제의 조건에서 n, m의 최대수는 20으로 최대 400개까지 나오므로 그렇게 큰 수가 아니라고 판단하였고, 질문에 어떤 숫자가 나올지 모르므로 모두 만들고 골라쓰는 식으로 진행하면 편할 것 같다는 생각이 들었다.
그래서 나는 만들 수 있는 모든 문자열을 작성한 후 str_list라는 리스트 안에 저장하였다.
이후 question의 숫자를 n * m으로 나눈 후 "나머지 - 1"의 위치에 해당하는 문자열을 불러오는 식으로 진행하였다.
(이때 나머지가 0인 경우는 마지막 문자열 이므로 이를 따로 취급해주자!)
test_case = int(input())
for test in range(test_case):
n, m = map(int, input().split())
s = list(map(str, input().split()))
t = list(map(str, input().split()))
q = int(input())
questions = []
for _ in range(q):
question = int(input())
questions.append(question)
answer = ''
str_list = []
S = s * m
T = t * n
for i in range(n * m):
word = S[i] + T[i]
str_list.append(word)
for j in questions:
left = j % (n * m)
if left == 0:
answer += str_list[-1]
else:
answer += str_list[left - 1]
answer += ' '
print(f'#{test+1} {answer}')
사실 for test in range(test_case):에서 test 대신에 t로 하여 오류가 나서 원인을 한참 찾았다...
문제에 t가 있는줄 모르고 그대로 정의해서 ㅋㅋㅋ....
변수 주의하자 ㅎㅎ;
통과!
링크