홀수 vs 짝수
def solution(num_list):
even_sum = 0
odd_sum = 0
for i in range(len(num_list)) :
if i % 2 == 1 :
odd_sum += num_list[i]
else :
even_sum += num_list[i]
return max(even_sum, odd_sum)
완주하지 못한 선수
내 풀이
def solution(participant, completion):
completion_hash = {}
for c in completion :
if c in completion_hash :
completion_hash[c] += 1
else :
completion_hash[c] = 1
for p in participant :
if p in completion_hash :
completion_hash[p] -= 1
if completion_hash[p] == -1 :
return p
else :
return p
다른 사람 풀이
hash 함수를 사용하면 해당 값의 메모리 주소를 출력해주는 것 같다.
"A"라는 값이 있고 ["A","A"]라는 배열이 있을 때 index 1번과 2번은 모두 같은 주소를 가르키고 있다.
그래서 hash 함수를 사용해서 모든 hash 값들을 더해준 다음에 completion에 있는 hash 값들을 빼주면 남는 단 1개의 hash 값이 있고 그 hash 값에 대한 value를 출력함으로써 답을 찾는 것이다.
해당하는 풀이의 문제점은 완주하지 못한 사람이 단 한 명 뿐이라는 전제하에서만 가능하다는 것이다.
def solution(participant, completion):
answer = ''
temp = 0
dic = {}
for part in participant:
dic[hash(part)] = part
temp += int(hash(part))
for com in completion:
temp -= hash(com)
answer = dic[temp]
return answer
K번째수
내 풀이
def solution(array, commands):
result = []
for c in commands :
i = c[0] - 1
j = c[1]
k = c[2]
arr_tmp = []
for count in range(j) :
if i <= count <= j :
arr_tmp.append(array[count])
arr_tmp.sort()
result.append(arr_tmp[k - 1])
return result
공배수
문제 Link (opens in a new tab)
자꾸 틀리는 문제만 늘어나는거 같아서 성취감을 느끼고 싶어서 풀어봤다...
내 풀이
def solution(number, n, m) :
if number % n == 0 and number % m == 0 :
return 1
return 0