인접한 원소들의 차이를 확인 한 수 조작
def solution(numLog):
answer = []
for i in range(1, len(numLog)):
minus = numLog[i] - numLog[i - 1]
if minus == 1:
answer.append("w")
elif minus == -1:
answer.append("s")
elif minus == 10:
answer.append("d")
elif minus == -10:
answer.append("a")
return "".join(answer)
리스트의 값을 다른 리스트의 값으로 대체
arr[0, 1, 2, 3, 4]
queries[[0, 3],[1, 2],[1, 4]]
결과 [3, 4, 1, 0, 2]
def solution(arr, queries):
for i in queries:
arr[i[0]], arr[i[1]] = arr[i[1]], arr[i[0]]
return arr
수열구간쿼리
"""
입출력 예
arr
[0, 1, 2, 4, 3]
queries
[[0, 4, 2],[0, 3, 2],[0, 2, 2]]
result
[3, 4, -1]
"""
def solution(arr, queries):
answer = []
for i in range(0, len(queries)):
index = queries[i]
start, end, compare = index[0], index[1], index[2]
result = arr[start : end + 1]
result.sort()
mini = -1
for b in result:
if b > compare:
mini = b
break
answer.append(mini)
return answer
# 다른 방법
def solution(arr, queries):
answer = []
for s, e, k in queries:
tmp = []
for x in arr[s:e+1]:
if x > k:
tmp.append(x)
answer.append(-1 if not tmp else min(tmp))
return answer
수열과 구간 뭐리 (배수에 해당하면 + 1)
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더한다.
입출력 예
arr queries result
[0, 1, 2, 4, 3] [[0, 4, 1],[0, 3, 2],[0, 3, 3]] [3, 2, 4, 6, 4]
def solution(arr, queries):
for i in queries:
start, end, k = i
for j in range(start, end + 1):
if j % k == 0:
arr[j] += 1
return arr
all() 함수를 사용하여 iterable(반복가능한) 객체의 요소가 모두 참인지 거짓인지 판별하기
0와 5만 들어간 숫자 출력
l r result
5 555 [5, 50, 55, 500, 505, 550, 555]
10 20 [-1]
def solution(l, r):
result = []
for num in range(l, r+1):
if all(digit in ('0', '5') for digit in str(num)):
result.append(num)
if not result:
result = [-1]
return result
재귀함수를 이용하여 특정 숫자만을 반환하도록 하는 경우(바로 위의 문제와 입출력 동일)
def solution(l, r):
ret = []
def f(lim, val):
if lim == 0:
ret.append(val)
return
f(lim - 1, val * 10 + 5)
f(lim - 1, val * 10)
f(6, 0)
return list(i for i in ret if l <= i <= r)[::-1] or [-1]
카운트 업
start = 3
end = 10
def solution(start, end):
answer = []
for i in range(start, end + 1):
answer.append(i)
return print(answer)
# lambda를 이용한 경우
solution = lambda start, end: [i for i in range(start, end+1)]
'자료구조 & 알고리즘' 카테고리의 다른 글
Tool Box 3 (0) | 2023.05.24 |
---|---|
Tool Box (0) | 2023.04.26 |
자료구조 : 큐 (Quene) (0) | 2021.12.22 |
자료구조 : 배열(Array) (0) | 2021.12.21 |
컴퓨터 메모리의 간략한 개념과 선형 데이터 구조의 개념 (0) | 2021.12.21 |