[프로그래머스]코딩테스트 입문 | 복습 Day18

sun_U·2023년 6월 29일
0
post-thumbnail

Day18 문자열, 수학, 조건문, 정렬

69. 문자열안에 문자열


문제
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

제출 코드

def solution(str1, str2):
    return 1 if str2 in str1 else 2

70. 제곱수 판별하기


문제
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 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()를 사용해서 판별할 수도 있다.

71. 세균 증식


문제
어떤 세균은 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의 거듭 제곱을 곱하는 것은 시프트 연산자를 사용할 수도 있다.

72. 문자열 정렬하기(2)


문제
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.

제출 코드

def solution(my_string):
    answer = ''.join(sorted(my_string.lower()))
    return answer
profile
Data Engineer🐣

0개의 댓글