프로그래머스(파이썬)

    정수 제곱근 판별 → 1/2 , math.sqrt(), math.pow()

    나의 풀이 import math def solution(n): x = math.sqrt(n) if x != int(x): return -1 return math.pow(x+1, 2) ▶ 핵심은 x가 정수인지를 판단하는 것 다른 사람의 풀이 import math def solution(n): x = n**(1/2) if x % 1 ==0: return (x+1)**2 return -1 ▶ **(1/2)은 제곱근을 의미한다.

    자연수 뒤집어 배열로 만들기 → map의 reversed★

    나의 풀이 def solution(n): answer = [] for i in str(n): answer.append(int(i)) answer.reverse() return answer ▶ 일단은 정수 n을 String 타입으로 바꾼면서 동시에 임시변수 i를 통해 각 "개별 문자"에 접근한다. ▶ reverse() 메서드를 통해 answer 리스트를 뒤집은 다음 return 해준다. 다른 사람의 풀이 def digit_reverse(n): return list(map(int, reversed(str(n)))) ▶ reversed() 라는 것이 존재한다.

    숨어있는 숫자의 덧셈(2) - 정규식o vs 정규식x , join()

    정규식을 사용하는 경우 - findall() import re def solution(my_string): numbers=list(map(int, re.findall(r'\d+', my_string))) return numbers 정규식을 사용하지 않는 경우 def solution(my_string): s = ''.join(i if i.isdigit() else ' ' for i in my_string) return sum(int(i) for i in s.split()) ▶ my_string이라는 문자열을 임시변수 i로 접근할 것인데, i가 숫자이면 i를 집어 넣고, i가 숫자가 아니라면 ' ' 공백을 집어 넣는다. ▶ join() 메서드의 매개변수로는 문자열, 리스트, 튜플을 사용할 수 있다★ ▶ ''..

    이진수 더하기 - bin() 함수 이용

    나의 풀이 def solution(bin1, bin2): #bin1, bin2는 문자열 return bin(int(bin1,2)+int(bin2,2))[2:] ▶ bin1, bin2는 문자열이다. ▶ int(bin1, 2)는 bin1(문자열)을 이진수로 인식한 후에 10진수로 변환을 한다. ▶ 10진수 더하기를 한 다음 bin() 함수를 이용해 10진수를 2진수로 변환한다. ▶ 2진수로 변환한경우 '0b'가 앞에 붙기 때문이 [2: ] 로 슬라이싱하여 '0b'를 잘라낸다.