1. 문자열의 앞의 n글자
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 숫자와 알파벳으로 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- 1 ≤ n ≤ my_string의 길이
입출력 예
my_string | n | result |
"ProgrammerS123" | 11 | "ProgrammerS" |
"He110W0r1d" | 5 | "He110" |
입출력 예
입출력 예 #1
- 예제 1번의 my_string에서 앞의 11글자는 "ProgrammerS"이므로 이 문자열을 return 합니다.
입출력 예 #2
- 예제 2번의 my_string에서 앞의 5글자는 "He110"이므로 이 문자열을 return 합니다.
제출 답안
import Foundation
func solution(_ my_string:String, _ n:Int) -> String {
// prefix() : 문자열 앞에서부터 지정된 개수 n개 만큼 substring을 반환
return String(my_string.prefix(n))
}
2. 접두사인지 확인하기
어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 100
- 1 ≤ is_prefix의 길이 ≤ 100
- my_string과 is_prefix는 영소문자로만 이루어져 있습니다.
입출력 예
my_string | is_prefix | result |
"banana" | "ban" | 1 |
"banana" | "nan" | 0 |
"banana" | "abcd" | 0 |
"banana" | "bananan" | 0 |
입출력 예 설명
입출력 예 #1
- 예제 1번에서 is_prefix가 my_string의 접두사이기 때문에 1을 return 합니다.
입출력 예 #2
- 예제 2번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.
입출력 예 #3
- 예제 3번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.
입출력 예 #4
- 예제 4번에서 is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.
제출 답안
import Foundation
func solution(_ my_string:String, _ is_prefix:String) -> Int {
return my_string.hasPrefix(is_prefix) ? 1:0
}
https://developer.apple.com/documentation/foundation/nsstring/1416529-hassuffix
hasSuffix(_:) | Apple Developer Documentation
Returns a Boolean value that indicates whether a given string matches the ending characters of the receiver.
developer.apple.com
3. 문자열 뒤집기
문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 숫자와 알파벳으로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- 0 ≤ s ≤ e < my_string의 길이
입출력 예
my_string | s | e | result |
"Progra21Sremm3" | 6 | 12 | ProgrammerS123 |
"Stanley1yelnatS" | 4 | 10 | Stanley1yelnatS |
입출력 예 설명
입출력 예 #1
- 예제 1번의 my_string에서 인덱스 6부터 인덱스 12까지를 뒤집은 문자열은 "ProgrammerS123"이므로 "ProgrammerS123"를 return 합니다.
입출력 예 #2
- 예제 2번의 my_string에서 인덱스 4부터 인덱스 10까지를 뒤집으면 원래 문자열과 같은 "Stanley1yelnatS"이므로 "Stanley1yelnatS"를 return 합니다.
제출 답안
import Foundation
func solution(_ my_string: String, _ s: Int, _ e: Int) -> String {
// 문자열을 배열로 변환
var my_Arr = Array(my_string)
// 주어진 범위 s...e의 부분 문자열을 뒤집음
let reverseArr = my_Arr[s...e].reversed()
// 원래 문자열 배열에서 해당 범위를 뒤집힌 배열로 교체
my_Arr.replaceSubrange(s...e, with: reverseArr)
// 다시 문자열로 변환하여 반환
return String(my_Arr)
}
https://developer.apple.com/documentation/swift/array/replacesubrange(_:with:)
replaceSubrange(_:with:) | Apple Developer Documentation
Replaces a range of elements with the elements in the specified collection.
developer.apple.com
4. 세로 읽기
문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자로 이루어져 있습니다.
- 1 ≤ m ≤ my_string의 길이 ≤ 1,000
- m은 my_string 길이의 약수로만 주어집니다.
- 1 ≤ c ≤ m
입출력 예
my_string | m | c | result |
ihrhbakrfpndopljhygc | 4 | 2 | happy |
programmers | 1 | 1 | programmers |
입출력 예 설명
입출력 예 #1
- 예제 1번의 my_string을 한 줄에 4 글자씩 쓰면 다음의 표와 같습니다.
1열 | 2열 | 3열 | 4열 |
i | h | r | h |
b | a | k | r |
f | p | n | d |
o | p | l | j |
h | y | g | c |
2열에 적힌 글자를 세로로 읽으면 happy이므로 "happy"를 return 합니다.
입출력 예 #2
- 예제 2번의 my_string은 m이 1이므로 세로로 "programmers"를 적는 것과 같고 따라서 1열에 적힌 글자를 세로로 읽으면 programmers입니다. 따라서 "programmers"를 return 합니다.
제출 답안
import Foundation
func solution(_ my_string: String, _ m: Int, _ c: Int) -> String {
let characters = Array(my_string) // 문자열을 배열로 변환
var result = ""
// c번째 열의 문자를 추출
for i in stride(from: c - 1, to: characters.count, by: m) {
result.append(characters[i])
}
return result
}
https://developer.apple.com/documentation/swift/stride(from:to:by:)
stride(from:to:by:) | Apple Developer Documentation
Returns a sequence from a starting value to, but not including, an end value, stepping by the specified amount.
developer.apple.com
5. qr code
두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 0 ≤ r < q ≤ 20
- r < code의 길이 ≤ 1,000
- code는 영소문자로만 이루어져 있습니다.
입출력 예
q | r | code | result |
3 | 1 | qjnwezgrpirldywt | jerry |
1 | 0 | programmers | programmers |
제출 답안
import Foundation
func solution(_ q: Int, _ r: Int, _ code: String) -> String {
// 결과 문자열을 저장할 변수
var result = ""
// 문자열의 각 문자와 인덱스를 순회
for (index, char) in code.enumerated() {
// 인덱스를 q로 나눈 나머지가 r과 같다면 해당 문자를 결과 문자열에 추가
if index % q == r {
result.append(char)
}
}
// 최종 결과 문자열 반환
return result
}
'프로그래머스 기초문제' 카테고리의 다른 글
[프로그래머스 기초문제] Day 12 리스트(배열) (0) | 2025.03.01 |
---|---|
[프로그래머스 기초문제] Day 11 리스트(배열) (0) | 2025.02.27 |
[프로그래머스 기초문제] Day 9 문자열 (0) | 2025.02.25 |
[프로그래머스 기초문제] Day 8 조건문, 문자열 (0) | 2025.02.25 |
[프로그래머스 기초문제] Day 7 반복문 (0) | 2025.02.22 |