1. 부분 문자열
어떤 문자열 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 |
입출력 예 설명
입출력 예 #1
- 본문과 동일합니다.
입출력 예 #2
- "tbbttb"에는 "tbt"가 없으므로 0을 return합니다.
제출 답안
import Foundation
func solution(_ str1: String, _ str2: String) -> Int {
// str1이 str2의 부분 문자열이면 1 아니면 0
return str2.contains(str1) ? 1 : 0
}
2. 꼬리 문자열
문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다. 예를 들어 문자열 리스트 ["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" | "" |
입출력 예 설명
입출력 예 #1
- 본문과 동일합니다.
입출력 예 #2
- 리스트 안의 모든 문자열이 "c"를 포함하므로 빈 문자열을 return합니다.
제출 답안
import Foundation
func solution(_ str_list: [String], _ ex: String) -> String {
// 제외할 문자열이 포함되지 않은 문자열들을 합친 결과 문자열
return str_list.filter { !$0.contains(ex) }.joined()
}
3. 정수 찾기
정수 리스트 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 |
입출력 예 설명
입출력 예 #1
- [1, 2, 3, 4, 5] 안에 3이 있으므로 1을 return합니다.
입출력 예 #2
- [15, 98, 23, 2, 15] 안에 20이 없으므로 0을 return합니다.
제출 답안
import Foundation
func solution(_ num_list: [Int], _ n: Int) -> Int {
// n이 리스트에 포함되면 1, 포함되지 않으면 0
return num_list.contains(n) ? 1 : 0
}
4. 주사위 게임 1
1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다.
- a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
- 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 |
입출력 예 설명
입출력 예 #1
- 예제 1번에서 두 주사위 숫자가 모두 홀수이므로 32 + 52 = 9 + 25 = 34점을 얻습니다. 따라서 34를 return 합니다.
입출력 예 #2
- 예제 2번에서 두 주사위 숫자 중 하나만 홀수이므로 2 × (6 + 1) = 2 × 7 = 14점을 얻습니다. 따라서 14를 return 합니다.
입출력 예 #3
- 예제 3번에서 두 주사위 숫자가 모두 홀수가 아니므로 |2 - 4| = |-2| = 2점을 얻습니다. 따라서 2를 return 합니다.
제출 답안
import Foundation
func solution(_ a: Int, _ b: Int) -> Int {
if a % 2 == 1 && b % 2 == 1 { // a와 b가 모두 홀수인 경우
return a * a + b * b
} else if a % 2 == 1 || b % 2 == 1 { // a와 b 중 하나만 홀수인 경우
return 2 * (a + b)
} else { // a와 b 모두 홀수가 아닌 경우 (즉, 둘 다 짝수인 경우)
return abs(a - b)
}
}
5. 날짜 비교하기
정수 배열 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에 따라 가능한 날짜로 주어집니다.
입출력 예
date1 | date2 | result |
[2021, 12, 28] | [2021, 12, 29] | 1 |
[1024, 10, 24] | [1024, 10, 24] | 0 |
입출력 예 설명
입출력 예 #1
- date1이 date2보다 하루 앞서기 때문에 1을 return 합니다.
입출력 예 #2
- date1과 date2는 날짜가 서로 같으므로 date1이 더 앞서는 날짜가 아닙니다. 따라서 0을 return 합니다.
제출 답안
import Foundation
func solution(_ date1: [Int], _ date2: [Int]) -> Int {
// 날짜 배열 비교
return date1.lexicographicallyPrecedes(date2) ? 1 : 0
}
https://developer.apple.com/documentation/swift/array/lexicographicallyprecedes(_:)
lexicographicallyPrecedes(_:) | Apple Developer Documentation
Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the less-than operator () to compare elements.
developer.apple.com
Swift의 lexicographicallyPrecedes(_:) 메서드는 사전순(lexicographical) 비교를 수행하는 기능을 합니다.
배열이나 문자열에서 사용될 수 있으며,
두 컬렉션을 앞에서부터 순차적으로 비교하여 첫 번째로 다른 요소를 기준으로 정렬 순서를 결정합니다.
'프로그래머스 기초문제' 카테고리의 다른 글
[프로그래머스 기초문제] 이차원 리스트(배열) (0) | 2025.03.27 |
---|---|
[프로그래머스 기초문제] Day 24 조건문 활용, 반복문 활용, 이차원 리스트(배열) (0) | 2025.03.26 |
[프로그래머스 기초문제] Day 22 함수(메서드), 조건문 활용 (0) | 2025.03.17 |
[프로그래머스 기초문제] Day 21 함수 (메서드) (0) | 2025.03.16 |
[프로그래머스 기초문제] Day 20 함수(메서드) (0) | 2025.03.13 |