프로그래머스 | 가운데 글자 가져오기 | Kotlin

2024. 1. 2. 09:52· 코딩테스트

 

 

문자열 s의 길이가 짝수인지 홀수인지 구분해서 짝수면 길이를 2로 나눈 몫에 해당하는 인덱스로, 홀수면 길이를 2로 나눈 몫에서 1을 뺀 인덱스와 몫에 해당하는 인덱스를 반환하게 했다.

그런데 문자열에서 인덱스로 요소를 가져오니까 타입이 Char으로 추론이 되어서 강제로 String으로 변환시켜주어야 했다.

class Solution {
    fun solution(s: String): String {
        var answer: String = ""
        var a = s.length
        if(a %2 ==0){
            answer = s[a/2-1].toString() + s[a/2].toString()
        } else {
            answer = s[a/2].toString()
        }
        return answer
    }
}

 

 

 

다른 사람 풀이

class Solution {
  fun solution(s: String) =
    with(s) { substring(length / 2 - 1 + (length % 2) .. length / 2) }
}

전혀 모르겠다. with 은 어떻게 쓰는거고 substring은 무슨 역할인지

 

.substring( a .. b)

문자열의 a번째부터 b번째 전까지 자르기 (until -1 사용이랑 똑같다)

1 . qwer
answer = "qwer".substring(4/2 - 1 + (4%2) .. 4/2)
answer = "qwer".substring( 1 .. 2 )
answer = "we"


2. abcde
answer = "abcde".substring(5/2 -1 + (5%2) .. 5/2)
answer = "abcde".substring(1.5 .. 2)
answer = "c"

 

 

with(receiver) {}

receiver 로 객체를 입력받으면 it 이나 this 등의 키워드 없이도 객체의 속성을 참조하거나 변경할 수 있다.

여러 번 호출할 필요가 있을 때 그룹핑하는 용도!

with 을 사용하지 않는다면 아래와 같다.

class Solution {
  fun solution(s: String) =
    s.substring((s.length / 2 - 1) + (s.length % 2) .. (s.length / 2))
}

 

 

 

다른 사람 풀이 2

class Solution {
    fun solution(s: String) = s.slice(((s.length - 1) / 2)..(s.length / 2))
}

.slice(a ..b)

원하는 구간만 잘라서 새롭게 반환하고 싶을 때 사용! 원본 변경  X

 

'코딩테스트' 카테고리의 다른 글

프로그래머스 | 내적 | Kotlin  (2) 2024.01.04
프로그래머스 | 수박수박수박수 | Kotlin  (1) 2024.01.03
프로그래머스 | 없는 숫자 더하기  (1) 2023.12.28
프로그래머스 | 핸드폰 번호 가리기  (1) 2023.12.27
프로그래머스 | 음양 더하기  (0) 2023.12.26
'코딩테스트' 카테고리의 다른 글
  • 프로그래머스 | 내적 | Kotlin
  • 프로그래머스 | 수박수박수박수 | Kotlin
  • 프로그래머스 | 없는 숫자 더하기
  • 프로그래머스 | 핸드폰 번호 가리기
다시은
다시은
🔥
다시은
재은로그
다시은
전체
오늘
어제
  • 분류 전체보기 (127)
    • 코딩테스트 (40)
    • Language (2)
      • JAVA (2)
      • Kotlin (0)
      • TypeScript (0)
    • SQL (1)
    • 인프라 (1)
    • 왕초보일지 (77)
    • 회고 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • googleapis
  • 문자열변환
  • sql
  • Kotlin
  • 스프레드시트
  • SQL문법
  • mysql

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
다시은
프로그래머스 | 가운데 글자 가져오기 | Kotlin
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.