문제
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제출 코드
def solution(str1, str2):
return 1 if str2 in str1 else 2
문제
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제출 코드
def solution(n):
for i in range(1, int(n**0.5)+1):
if i**2 == n:
return 1
return 2
다른 풀이
def solution(n):
return 1 if n**0.5 == int(n**0.5) else 2
반복문을 사용하지 않고 0.5승 한 경우가 정수인지를 판단해 제곱수를 판단.
다른 사람의 풀이를 보면 .is_integer()
를 사용해서 판별할 수도 있다.
문제
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제출 코드
def solution(n, t):
answer = n
for i in range(t):
answer *= 2
return answer
-> 처음 풀었을 때 제출한 코드. 반복문으로 2배를 곱해주었었다.
다른 풀이
def solution(n, t):
answer = n * (2 ** t)
return answer
2의 거듭 제곱으로 작성하면 반복문을 쓰지 않아도 된다.
다른 사람 풀이
def solution(n, t):
return n << t
2의 거듭 제곱을 곱하는 것은 시프트 연산자를 사용할 수도 있다.
문제
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
제출 코드
def solution(my_string):
answer = ''.join(sorted(my_string.lower()))
return answer