Programmers/Lv. 1

[Kotlin] Programmers Lv.1 가운데 글자 가져오기

chattymin 2023. 9. 1. 19:06
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12903

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Code


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

다들 처음으로 생각하는 아이디어는 if-else문을 사용해서 길이의 홀수 / 짝수에 따른 처리 방법일 것이다.

이때 주목해야 하는 것은 두가지다.

 

int타입의 나누기 연산 방식

4/2 = 2이지만

5/2 = 2이다. 

즉, 나머지는 버려지는 것이다.

 

배열의 시작 주소

시작점은 0이기 때문에 절반의 길이를 구했다고 해도 1을 빼줘야 한다.

 

 

그래서 총 길이에서 절반의 길이를 빼고 1을 추가로 뺀 부분부터 절반의 길이까지 잘라내주면 된다.

왜 이렇게 될까?

 

홀수일때

5 / 2 = 2

2 .. 2

 

 

짝수일때

4 / 2 = 2

1 .. 2

 

 

 

 

이런식으로 진행할 수 있다.

728x90
반응형