728x90
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항- s는 길이가 1 이상, 100이하인 스트링입니다.
"abcde" | "c" |
"qwer" | "we" |
substring 풀이법
// 문자열 길이를 2로 나눈다.
// 홀수일 경우 1을 더하고 아닐 경우 0을 더하는 방식
// 짝수일 경우는 .. 앞의 인덱스 숫자와 뒤의 인덱스 숫자가 다르기 때문에 2개가 반환되고
// 홀수일 경우는 .. 앞의 인덱스 숫자와 뒤의 인덱스 숫자가 같기 때문에 1개가 반환된다.
s.substring((s.length -1) / 2 .. s.length / 2)
substring 이란?
String의 인덱스 자리를 정해서 그 인덱스 포함 문자열 부터 자르는 함수.
/* substring 예시
val str = "abcdefghijklmn"
val subString1 = str.substring(0 until 5) str 문자열의 0번째부터 5번째 전까지의 문자열 자르기
val subString2 = str.substring(5) startIndex(5번째)에서 시작하여 문자열 끝까지 자르기
val subString3 = str.substring(5, 9) startIndex(5번째)부터 시작하여 endIndex(9번째) 전까지
*/
slice 풀이법
s.slice((s.length - 1) / 2..s.length / 2) // slice 를 활용하는 방법
slice 도 마찬가지로 문자열을 자르는 함수이다.
그러나 차이점이 있다 slice 는 다음과 같이도 활용될 수 있다.
val numbers = listOf("one", "two", "three", "four", "five", "six")
println(numbers.slice(1..3))
println(numbers.slice(0..4 step 2))
println(numbers.slice(setOf(3, 5, 0)))
// output:
// [two, three, four]
// [one, three, five]
// [four, six, one]
이 둘의 차이점을 알고 사용하자!
'알고리즘' 카테고리의 다른 글
[코딩테스트] Level. 1 문자열 내림차순으로 정렬하기 (2) | 2023.01.16 |
---|---|
[코딩테스트] Level. 1 문자열 내 마음대로 정렬하기 (0) | 2023.01.12 |
[코딩테스트] Level. 1 두 정수 사이의 합 (0) | 2023.01.12 |
[코딩테스트] Level. 1 나누어 떨어지는 숫자 배열 (0) | 2023.01.12 |
[코딩테스트] Level. 1 - 2016년 (0) | 2023.01.10 |