def solution(code):
mode = False
answer = []
for i in range(len(code)):
if code[i] == "1":
mode = not mode
continue
if not mode and i%2 == 0:
answer.append(code[i])
elif mode and i%2 == 1:
answer.append(code[i])
if not answer:
return "EMPTY"
return "".join(answer)
두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.
def solution(a, d, included):
result = 0;
for idx, i in enumerate(included):
if i:
result += (a+(d*idx))
return result
1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.
- 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.
- 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다.
- 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.
세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
def solution(a, b, c):
if a != b and a != c and b != c :
return a+b+c
elif a == b and a == c and b == c :
return (a + b + c) * (a**2 + b**2 + c**2) * (a**3 + b**3 + c**3)
else :
return (a + b + c) * (a**2 + b**2 + c**2)
정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.
def solution(num_list):
mul = 1
for i in num_list:
mul*= i
return 1 if mul < sum(num_list)**2 else 0
function solution(num_list) {
let a = num_list.reduce((a,b)=> a+b,0);
let b = num_list.reduce((a,b)=> a*b,1);
return b > a*a ? 0 : 1;
}
정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
def solution(num_list):
odd = ""
even = ""
for i in num_list:
if i % 2 == 1 :
odd += str(i)
else :
even += str(i)
return int(odd) + int(even)
정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.
def solution(num_list):
last = num_list[-1]
last2 = num_list[-2]
num_list.append((last - last2) if last2 < last else (last*2))
return num_list
정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.
- "w" : n이 1 커집니다.
- "s" : n이 1 작아집니다.
- "d" : n이 10 커집니다.
- "a" : n이 10 작아집니다.
위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요.
def solution(n, control):
for i in control :
if i == "w" :
n += 1
elif i == "s" :
n -= 1
elif i == "d" :
n += 10
elif i == "a" :
n -= 10
return n;
def solution(n, control):
key = dict(zip(['w','s','d','a'], [1,-1,10,-10]))
return n + sum([key[i] for i in control])
정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다.
- "w" : 수에 1을 더한다.
- "s" : 수에 1을 뺀다.
- "d" : 수에 10을 더한다.
- "a" : 수에 10을 뺀다.
그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다.
주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요.
def solution(numLog):
answer = ""
for i in range(1, len(numLog)):
diff = numLog[i] - numLog[i-1]
if diff == 1:
answer += "w"
elif diff == -1:
answer += "s"
elif diff == 10:
answer += "d"
elif diff == -10:
answer += "a"
return answer
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.
각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
def solution(arr, queries):
for i in range(len(queries)):
temp = arr[queries[i][0]]
arr[queries[i][0]] = arr[queries[i][1]]
arr[queries[i][1]] = temp
return arr
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾습니다.
각 쿼리의 순서에 맞게 답을 저장한 배열을 반환하는 solution 함수를 완성해 주세요.
단, 특정 쿼리의 답이 존재하지 않으면 -1을 저장합니다.
def solution(arr, queries):
answer = []
for s, e, k in queries:
result = [i for i in arr[s:e+1] if i > k]
answer.append(min(result) if result else -1)
return answer