🗒 문제


📝 나의 문제풀이
class Solution {
fun solution(my_string: String): Int {
return Regex("\\d+").findAll(my_string)
.map{ it.value.toInt() }.sum()
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(my_string: String): Int =
my_string.split("[A-z]+".toRegex())
.filter(String::isNotEmpty)
.sumOf(String::toInt)
}
🖊 문제 풀이 시 알면 좋을 것
- Regex("\\d+")
- \d → 숫자 0~9
- + → 연속된 숫자 1회 이상
- 따라서 "123abc45"에서 "123"과 "45"를 각각 추출
- .findAll(my_string)
- 문자열 전체에서 모든 매칭 결과를 반환
- 타입: Sequence<MatchResult>
- .map { it.value.toInt() }
- MatchResult에서 실제 매칭 문자열(value) 추출
- 문자열 → 정수 변환
- .sum()
- 추출된 모든 정수 합산
val s = "a1b23c"
Regex("\\d+").findAll(s).map{ it.value.toInt() }.sum() // 1 + 23 = 24
- my_string.split("[A-z]+".toRegex())
- [A-z]+ → 영문자가 연속된 부분
- split() → 숫자와 문자로 나누어 리스트 생성
- 예: "a1b23c" → ["", "1", "23", ""]
- .filter(String::isNotEmpty)
- 빈 문자열 제거
- ["1", "23"]
- .sumOf(String::toInt)
- 각 문자열 → 정수 변환 후 합산
- 1 + 23 = 24
- split
- 정의: 문자열을 구분자(delimiter)를 기준으로 나누어 여러 조각으로 만드는 함수
- 결과 타입: List<String>
- 사용법:
val result = "문자열".split(구분자)
- 구분자:
- 단일 문자 " "
- 문자열 ", "
- 정규식(Regex) "\\d+" 등
- 옵션:
- limit → 최대 몇 개로 나눌지 지정
- 연속된 구분자는 빈 문자열 생성 가능 → .filter { it.isNotEmpty() }로 제거
예시 1: 기본 문자 구분
val s = "apple,banana,cherry"
val result = s.split(",")
println(result) // [apple, banana, cherry]
예시 2: 공백 기준
val s = "Hello world Kotlin"
val result = s.split(" ")
println(result) // [Hello, world, Kotlin]
예시 3: 정규식(Regex) 사용
val s = "a1b23c456"
val result = s.split("\\d+".toRegex())
println(result) // [a, b, c, ""]
예시 4: 연속된 구분자
val s = "apple,,banana,,,cherry"
val result = s.split(",")
println(result) // [apple, , banana, , , cherry]
- 연속된 구분자는 빈 문자열 생성
- 필요하면 filter로 제거:
val cleaned = s.split(",").filter { it.isNotEmpty() }
println(cleaned) // [apple, banana, cherry]
예시 5: limit 옵션
val s = "apple-orange-banana"
val result = s.split("-", limit = 2)
println(result) // [apple, orange-banana]
- 문자열 → 여러 조각으로 나눠서 리스트 반환
- 구분자 → 문자, 문자열, 정규식 가능
- 연속된 구분자 → 빈 문자열 생성 가능
- limit → 최대 분할 개수 지정 가능
- 필요하면 .filter { it.isNotEmpty() }로 빈 문자열 제거
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 가까운 수 (0) | 2025.12.22 |
|---|---|
| [프로그래머스] 진료순서 정하기 (0) | 2025.12.22 |
| [프로그래머스] 한 번만 등장한 문자 (0) | 2025.12.22 |
| [프로그래머스] 중복된 문자 제거 (0) | 2025.12.22 |
| [프로그래머스] 369게임 (1) | 2025.12.21 |