algorithm/python
hackerrank/Data Structures/Arrays/Dynamic Array
아르르르를를르
2021. 7. 18. 16:52
https://www.hackerrank.com/challenges/dynamic-array/problem
식도 다 세워준 문제인데 지문 이해가 좀 어려웠다. input을 아래와 같이 이해하면 쉽게 해결된다.
2 5 // n q
1 0 5 // query_type x y
1 1 7
1 0 3
2 1 0
2 1 1
lastAnswer를 print하는데에 for문 안에서 그때그때 하는 것이 아니라
main 로직에서 return 된 result를 string으로 mapping 시킨 후 print 해주기에 나는 lastAnswer를 list에 담아 반환해주면 된다.
2차원 배열을 이해하는 문제이다.
<solved>
#!/bin/python3
import math
import os
import random
import re
import sys
def dynamicArray(n, queries):
lastAnswer = 0
arr = [[] for _ in range(n)]
ans = []
q = len(queries)
for q in queries:
q_typ = q[0]
x = q[1]
y = q[2]
idx = (x^lastAnswer) % n
if q_typ == 1:
arr[idx].append(y)
elif q_typ == 2:
lastAnswer = arr[idx][y % len(arr[idx])]
ans.append(lastAnswer)
return ans
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
first_multiple_input = input().rstrip().split()
n = int(first_multiple_input[0])
q = int(first_multiple_input[1])
queries = []
for _ in range(q):
queries.append(list(map(int, input().rstrip().split())))
result = dynamicArray(n, queries)
fptr.write('\n'.join(map(str, result)))
fptr.write('\n')
fptr.close()