- 수열과 구간 쿼리4
def solution(arr, queries):
for s,e,k in queries:
for i in range(s, e+1):
if i%k == 0:
arr[i] +=1
return arr
- 배열만들기2
def solution(l,r):
arr = []
n = [int(bin(x)[2:])*5 for x in range(1,65)]
for i in n:
if i>=l and i <= r:
arr.append(i)
if arr == []:
arr.append(-1)
print(arr)
- 카운트 업
def solution(start, end):
answer = []
for i in range(start, end+1):
answer.append(i)
return answer
- 콜라츠 수열 만들기
def solution(n):
answer = []
while(True):
if n != 1:
if n % 2 == 0:
answer.append(n)
n = n/2
elif n % 2 == 1:
answer.append(n)
n = 3 *n+1
else:
answer.append(n)
break
return answer
- 배열만들기4
def solution(arr):
stk = []
i=0
while(True):
if i >= len(arr):
break
elif stk == []:
stk.append(arr[i])
i+=1
elif stk !=[] and stk[-1] < arr[i]:
stk.append(arr[i])
i+=1
elif stk !=[] and stk[-1] >= arr[i]:
del stk[-1]
return stk
- 간단한 논리연산
def solution(x1, x2, x3, x4):
answer = (x1|x2)&(x3|x4)
return answer
- 주사위게임3
def solution(a, b, c, d):
nums = [a, b, c, d]
counts = [nums.count(i) for i in nums]
if max(counts) == 4:
return a * 1111
elif max(counts) == 3:
p = nums[counts.index(3)]
q = nums[counts.index(1)]
return (10 * p + q) ** 2
elif max(counts) == 2:
if min(counts) == 2:
return (a + c) * abs(a - c) if a == b else (a + b) * abs(a - b)
else:
p = nums[counts.index(2)]
return (a * b * c * d) / p**2
else:
return min(nums)
- 글자 이어붙여 문자열 만들기
def solution(my_string, index_list):
answer = ''
for i in index_list:
answer += my_string[i]
return answer
- 9로 나눈 나머지
def solution(number):
answer = int(number)%9
return answer
- 문자열 여러번 뒤집기
def solution(my_string, queries):
my_list = list(my_string)
for a,b in queries:
my_list[a:b+1] = list(reversed(my_list[a:b+1]))
answer = "".join(my_list)
return answer