[핸드폰 번호 가리기]
My answer
def solution(phone_number):
answer = ''
tmp=phone_number[0:-4]
len1=len(tmp)
answer='*'*len1
answer=answer+phone_number[-4:]
return answer
Another answer
def solution(phone_number):
return "*"*(len(phone_number)-4) + phone_number[-4:]
[하샤드 수]
My answer
def solution(x):
answer = True
x2=x
sum=0
while(x>=10):
sum=sum+x%10
x=x//10
sum=sum+x
if(x2%sum!=0):
answer=False
return answer
Another answer
def solution(x):
return x % sum([int(c) for c in str(x)]) == 0
[평균 구하기]
My answer
def solution(arr):
answer = 0
sum = 0
for i in range(0,len(arr)):
sum=sum+arr[i]
answer= sum / len(arr)
return answer
Another answer
def solution(arr):
return (sum(arr) / len(arr))
----------------------------
import statistics
def solution(arr):
return statistics.mean(arr)
[콜라츠 추측]
My answer
def solution(num):
answer = 0
while(num!=1):
if(answer>=500):
answer=-1
break
else:
if(num%2==0):
num=num//2
else:
num=num*3+1
answer+=1
return answer
[최대공약수와 최소공배수]
My answer
def solution(n, m):
answer = []
max_n,min_n=max(n,m),min(n,m)
# 최대공약수
while(1):
r = max_n % min_n
if(r==0):
break
else:
max_n=min_n
min_n=r
#최소공배수
answer=(min_n,n*m//min_n)
return answer
더보기
유클리드 호제법
유클리드 알고리즘(Euclidean algorithm)은 2개의 자연수의 최대공약수를 구하는 알고리즘입니다. 비교대상의 두 개의 자연수 a와 b에서(단 a>b) a를 b로 나눈 나머지를 r이라고 했을때 GCD(a, b) = GCD(b, r)과 같고 "r이 0이면 그때 b가 최대공약수이다."라는 원리를 활용한 알고리즘입니다. ex) GCD(24,16) -> GCD(16,8) -> GCD(8,0) : 최대공약수 = 8
+ 최소공배수는 a*b의 값을 최대공약수로 나눈 수가 된다.
[짝수와 홀수]
My answer
def solution(num):
answer = ''
if num%2==0:
answer="Even"
else:
answer="Odd"
return answer
Another answer
def solution(num):
answer = ''
return "Even" if num%2 == 0 else "Odd"
[제일 작은 수 제거하기]
My answer
def solution(arr):
answer = []
arr.remove(min(arr))
if(arr==[]):
arr=[-1]
answer+=arr
return answer
[정수 제곱근 판별]
My answer
def solution(n):
answer = 0
for i in range(1,n+1):
if(n==i*i): # n/i==/는 n과i가 정수여야 한다는 조건을 판별할 수 없어서 안됨
answer=(i+1)*(i+1)
break
if(answer==0):
answer-=1
return answer
Another answer
def solution(n):
# 1/2제곱은 제곱근이다
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return -1
[정수 내림차순으로 배열하기]
My answer
def solution(n):
answer = 0
# tmp=[c for c in str(n)] 아래줄 코드와 똑같은 코드
tmp=list(str(n))
tmp.sort(reverse=True)
answer=int("".join(tmp))
return answer
[자연수 뒤집어 배열로 만들기]
My answer
def solution(n):
answer = []
answer+=[int(str(n)[i]) for i in range(len(str(n))-1,-1,-1)]
return answer
---------------------------------------------
def solution(n):
answer = []
a = list(str(n))
a.reverse()
a = list(map(lambda x:int(x),a))
return a
---------------------------------------------
def solution(n):
answer = []
answer += list(int(c) for c in str(n))
answer.reverse()
return answer
Another answer
def solution(n):
return list(map(int, reversed(str(n))))
[자릿수 더하기]
My answer
def solution(n):
answer = 0
while(n>=10):
answer+=n%10
n=n//10
answer+=n
return answer
Another answer
def solution(n):
return sum([int(i) for i in str(n)])
[이상한 문자 만들기]
My answer
def solution(s):
answer = ''
tmp=[]
tmp=s.split(" ")
for i in tmp:
for j in range(len(i)):
if(j%2==0):
i=i[:j]+i[j].upper()+i[j+1:]
else:
i=i[:j]+i[j].lower()+i[j+1:]
answer+=i+" "
return answer[:-1]
Another answer
def solution(s):
return ' '.join([''.join([c.upper() if i % 2 == 0 else c.lower() for i, c in enumerate(w)]) for w in s.split(" ")])
728x90
반응형
'코딩테스트 > 프로그래머스[Python]' 카테고리의 다른 글
[프로그래머스] 09/13 (3) (0) | 2021.09.13 |
---|---|
[프로그래머스] 09/09 (3) (0) | 2021.09.09 |
[프로그래머스] 09/08 (6) (0) | 2021.09.08 |
[프로그래머스] 09/06 (2) (0) | 2021.09.06 |
[프로그래머스] 09/03 (3) (0) | 2021.09.03 |