Programmers 문제 풀이
1. 평균 구하기
def solution(arr):
allsum = sum(arr)
count = len(arr)
answer = allsum / count
return answer
2. 짝수와 홀수
def solution(num):
if num % 2 == 0:
answer = 'Even'
else:
answer = 'Odd'
return answer
3. 자릿수 더하기
def solution(n):
answer = 0
n = str(n)
for i in n:
i = int(i)
answer += i
return answer
4. 자연수 뒤집어 배열로 만들기
def solution(n):
n = str(n)
answer = []
for i in n[::-1]:
i = int(i)
answer.append(i)
return answer
5. 숫자 문자열과 영단어 - 2021 카카오 채용연계형 인턴십
def solution(s):
s = s.replace('zero','0')
s = s.replace('one', '1')
s = s.replace('two', '2')
s = s.replace('three', '3')
s = s.replace('four', '4')
s = s.replace('five', '5')
s = s.replace('six', '6')
s = s.replace('seven', '7')
s = s.replace('eight', '8')
s = s.replace('nine', '9')
s = int(s)
return s
6. 체육복 - 탐욕법(Greedy)
# set의 차집합을 이용한 답안코드
def solution(n, lost, reserve):
reserve_del = set(reserve) - set(lost)
lost_del = set(lost)- set(reserve)
for i in reserve_del:
if i-1 in lost_del:
lost_del.remove(i-1)
elif i+1 in lost_del:
lost_del.remove(i+1)
return n - len(lost_del)
7. 비밀지도 - 2018 KAKAO BLIND RECRUITMENT
# 비트연산과 이진수 변환을 이용한 답안코드
def solution(n, arr1, arr2):
answer = [''] * n
for i in range(len(arr1)):
bin1 = bin(arr1[i])[2:].zfill(n)
bin2 = bin(arr2[i])[2:].zfill(n)
for j in range(n):
if bin1[j] == '0' and bin2[j] == '0':
answer[i] += ' '
else:
answer[i] += '#'
return answer
#한 문자열에 'n의 크기'만큼 들어가야 하므로 append로 넣어주게 되면 '하나'하나씩 들어가게 되어 원하는 값을 받을 수 없다
8. 약수의개수와덧셈-월간코드챌린지시즌2
def solution(left, right):
answer = 0
for i in range(left, right+1):
count = 0
for n in range(1, i+1):
if i % n == 0:
count += 1
if count % 2 == 1:
i = -i
answer += i
return answer
9. 없는숫자더하기-월간코드챌린지시즌3
def solution(numbers):
answer = 0
for n in range(0,10,1):
if n not in numbers:
answer += n
return answer
10. 완주하지 못한 선수 – 해시
# 1. 외부모듈 이용한 해결방법
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
print(solution(["marina", "josipa", "nikola", "vinko", "filipa"], ["josipa", "filipa", "marina", "nikola"]))
# 2. 딕셔너리 활용
def solution(participant, completion):
temp = {}
for i in participant :
if i in temp :
temp[i]+=1
else:
temp[i] =1
for i in completion :
if temp[i]==1 :
del temp[i]
else :
temp[i] -=1
return list(temp.keys())[0]
[문제 풀이 Github]
https://github.com/wonprogrammer/programmers.git
GitHub - wonprogrammer/programmers: programmers 알고리즘 풀이
programmers 알고리즘 풀이. Contribute to wonprogrammer/programmers development by creating an account on GitHub.
github.com
'source Code > Programmers' 카테고리의 다른 글
| Programmers | week3 문제 풀이 (0) | 2023.02.09 |
|---|---|
| Programmers | week2 문제 풀이 (0) | 2023.02.09 |