[코딩 기초 프로그래밍]Day 23 조건문 활용
부분 문자열
문제 설명
어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 “abc”는 문자열 “aabcc”의 부분 문자열입니다.
문자열 str1
과 str2
가 주어질 때, str1
이 str2
의 부분 문자열이라면 1을 부분 문자열이 아니라면 0을 return하도록 solution 함수를 완성해주세요.
제한 사항
- 1 ≤
str1
≤str2
≤ 20 str1
과str2
는 영어 소문자로만 이루어져 있습니다.
입출력 예
str1 | str2 | result |
---|---|---|
“abc” | “aabcc” | 1 |
“tbt” | “tbbttb” | 0 |
solution
def solution(str1, str2):
return int(str1 in str2)
꼬리 문자열
문제 설명
문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다. 예를 들어 문자열 리스트 [“abc”, “def”, “ghi”]가 있고 문자열 “ef”를 포함한 문자열은 제외하고 꼬리 문자열을 만들면 “abcghi”가 됩니다.
문자열 리스트 str_list
와 제외하려는 문자열 ex
가 주어질 때, str_list
에서 ex
를 포함한 문자열을 제외하고 만든 꼬리 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤
str_list
의 길이 ≤ 10 - 1 ≤
str_list
의 원소의 길이 ≤ 10 - 1 ≤
ex
의 길이 ≤ 5
입출력 예
str_list | ex | result |
---|---|---|
[“abc”, “def”, “ghi”] | “ef” | “abcghi” |
[“abc”, “bbc”, “cbc”] | “c” | ”” |
solution
def solution(str_list, ex):
return ''.join([i for i in str_list if ex not in i])
정수 찾기
문제 설명
정수 리스트 num_list
와 찾으려는 정수 n
이 주어질 때, num_list
안에 n
이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤
num_list
의 길이 ≤ 100 - 1 ≤
num_list
의 원소 ≤ 100 - 1 ≤
n
≤ 100
입출력 예
num_list | n | result |
---|---|---|
[1, 2, 3, 4, 5] | 3 | 1 |
[15, 98, 23, 2, 15] | 20 | 0 |
solution
def solution(num_list, n):
return int(n in num_list)
주사위 게임 1
문제 설명
1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a
, b
라고 했을 때 얻는 점수는 다음과 같습니다.
a
와b
가 모두 홀수라면a
2 +b
2 점을 얻습니다.a
와b
중 하나만 홀수라면 2 × (a
+b
) 점을 얻습니다.a
와b
모두 홀수가 아니라면 |a
-b
| 점을 얻습니다.
두 정수 a
와 b
가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
제한사항
a
와b
는 1 이상 6 이하의 정수입니다.
입출력 예
a | b | result |
---|---|---|
3 | 5 | 34 |
6 | 1 | 14 |
2 | 4 | 2 |
solution
def solution(a, b):
if a % 2 == 0 and b % 2 == 0:
return abs(a - b)
elif a % 2 == 1 and b % 2 ==1:
return a**2 + b**2
else:
return 2 * (a + b)
-----------------------------------------
def solution(a, b):
return a*a+b*b if a & b & 1 else (a + b) << 1 if (a | b) & 1 else abs(a - b)
파이썬 절대값(abs) 함수
기본적으로 절대값 함수는 내장함수 입니다.
abs()
의 모양을 띄고 넣은 수 가 변환이 되는것이 아닌 넣은 수의 절대값이 반환 되는것 입니다.
날짜 비교하기
문제 설명
정수 배열 date1
과 date2
가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day]
꼴로 주어집니다. 각 배열에서 year
는 연도를, month
는 월을, day
는 날짜를 나타냅니다.
만약 date1
이 date2
보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.
제한사항
date1
의 길이 =date2
의 길이 = 3- 0 ≤
year
≤ 10,000 - 1 ≤
month
≤ 12 day
는month
에 따라 가능한 날짜로 주어집니다.
- 0 ≤
입출력 예
date1 | date2 | result |
---|---|---|
[2021, 12, 28] | [2021, 12, 29] | 1 |
[1024, 10, 24] | [1024, 10, 24] | 0 |
solution
def solution(date1, date2):
return int(date1 < date2)
리스트 더 알아보기
두 리스트를 합칠 때, +
를 사용합니다.
리스트를 반복하는 것은 *
연산자를 사용합니다.
두 리스트 간에 비교연산자 사용이 가능합니다. 리스트는 순서가 존재하기 때문에 각 리스트의 순서끼리 비교하고 True, False를 출력합니다.
원본 리스트를 정렬하고 싶을때는 sort() 메소드를 사용합니다.
원본은 그대로 두고 정렬된 리스트를 출력하고 싶을 때는 sorted() 메소드를 사용합니다.
댓글남기기