[코딩테스트 입문]Day18
문자열안에 문자열
문제 설명
문자열 str1
, str2
가 매개변수로 주어집니다. str1
안에 str2
가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
str1
의 길이 ≤ 100 - 1 ≤
str2
의 길이 ≤ 100 - 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
입출력 예
str1 | str2 | result |
---|---|---|
“ab6CDE443fgh22iJKlmn1o” | “6CD” | 1 |
“ppprrrogrammers” | “pppp” | 2 |
“AbcAbcA” | “AAA” | 2 |
문제 풀이
def solution(str1, str2):
if str2 in str1:
return 1
return 2
def solution(str1, str2):
return 2 - int(str2 in str1)
int
로 참 거짓을 판별해서 참이면 1 거짓이면 0이 나온다는 사실을 활용해서 더 짧게 만들어 봤습니다.
def solution(str1, str2):
return 1 if str2 in str1 else 2
이런 식으로도 출력이 가능합니다.
제곱수 판별하기
문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n
이 매개변수로 주어질 때, n
이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
n
≤ 1,000,000
입출력 예
n | result |
---|---|
144 | 1 |
976 | 2 |
문제 풀이
def solution(n):
for i in range(1, n):
if i * i == n:
return 1
return 2
def solution(n):
return 1 if (n ** 0.5).is_integer() else 2
[정수 제곱근 판별] **
제곱근을 구하는 공식으로는 **math.sqrt() 또는 number**(0.5)가 있습니다.
float.is_integer()는 type이 int형이든 float형이든 상관없이 정수 인지 아닌지를 판별합니다.
그래서 n의 2분의 1승은 루트 n이므로 값이 제곱수라면 정수가 반환될 것 이고 아니라면 실수가 반환됩니다. 이를 통해 제곱수인가를 판별할 수 있습니다.
세균 증식
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n
과 경과한 시간 t
가 매개변수로 주어질 때 t
시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
n
≤ 10 - 1 ≤
t
≤ 15
입출력 예
n | t | result |
---|---|---|
2 | 10 | 2048 |
7 | 15 | 229,376 |
문제 풀이
def solution(n, t):
return n* 2**t
문자열 정렬하기(2)
문제 설명
영어 대소문자로 이루어진 문자열 my_string
이 매개변수로 주어질 때, my_string
을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 <
my_string
길이 < 100
입출력 예
my_string | result |
---|---|
“Bcad” | “abcd” |
“heLLo” | “ehllo” |
“Python” | “hnopty” |
문제 풀이
def solution(my_string):
new = ""
for i in my_string:
if i.isupper():
new += i.lower()
else:
new += i
return ''.join(sorted(new))
def solution(my_string):
return ''.join(sorted(my_string.lower()))
댓글남기기