알고리즘

[CodeWars] Square Every Digit - 7Kyu

또롱또 2024. 12. 5. 00:38
728x90

https://www.codewars.com/kata/546e2562b03326a88e000020/train/python

 

Codewars - Achieve mastery through coding practice and developer mentorship

A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!

www.codewars.com

 

 

 

이번에도 랭크업 난이도의 문제를 풀어볼 예정이고 7kyu가 걸렸다.

 

주어진 value가 있고, 그 value을 각각 제곱을 한 다음에, 나온 결과를 string으로 붙여서 다시 integer로 반환하라는거 같다.

 

나는 형변환을 좀 지나치게 사용하긴 했지만 내 답은 아래와 같다. for in list를 한번 다시 사용해봤다 익숙해 지기 위해.

 

def square_digits(num):
   return int(''.join([str(int(num) ** 2)  for num in list(str(num))]))

 

파이썬에서 숫자를 for loop 으로 돌릴수 없어서 문자열로 바꿔줘야하고, 제곱하기위해 다시 넘버로.

그리고 배열을 문자열로 풀기위해 다시 모든 엘리먼트를 문자열로 바꿔주고.. 마지막 return은 넘버로 하래서 또 int로..

 

그런데 내 답이 clever를 제일 많이 받은 답 이었다.

 

그 외에 답은

def square_digits(num):
    ret = ""
    for x in str(num):
        ret += str(int(x)**2)
    return int(ret)

 

이런게 있었는데,

 

그냥 for in list를 사용 안한거 였고, 모두가 형변환을 하고 있었다.

728x90