달달한 스토리

728x90
반응형

출처 핀터레스트

 

요즘 꾸준히 문제를 푸는 중이다.

 

아직 코틀린 쉬운 단계지만, 기본을 잘 익혀보자.

 

문자열 내림차순으로 배치하기

 

//문자열 내림차순으로 배치하기
class PlacingStringsInDescendingOrder {
    fun solution(s: String): String = String(s.toCharArray().sortedArrayDescending())
}

 

코틀린 내장함수에 sortedArrayDescending() 메서드를 이용했다.

 

숫자도 가능하지만, charArray로 만들면, 소문자 대문자 순으로도 바꿀 수 있기 때문에,

 

바로 구현이 가능하였다.

 

다른 방법으로는

 

//문자열 내림차순으로 배치하기
class PlacingStringsInDescendingOrder {
    fun solution(s: String): String = s.toCharArray().sortedArrayDescending().joinToString("")
}

 

joinToString() 메서드를 이용한 방법이 있다.

 

 

문자열 다루기 기본

 

//문자열 다루기 기본
class StringHandlingBasics {
    fun solution(s: String): Boolean = (s.length == 4 || s.length == 6) && s.all{ it.isDigit() }
}

 

문제를 제대로 읽어보지 못했다.

 

앞에 4 또는 6에 대한 조건문을 넣지 못해 계속 틀리는 바람에

 

왜 틀렸는지 알지 못하고, 답안을 보았다..ㅠㅠ

 

try catch문을 처음에 사용해서,

 

Exception이 던져질 때 false를 반환하는 방법을 썼었는데,

 

그보다 저렇게 한줄로 표현하는 방법이 훨씬 간결하여 사용하였다.

 

4 또는 6이라는 조건문을 넣고,

 

all이라는 메서드를 사용하였다.

 

all은 문자열을 통해 문자(char)를 넘겨받고, 만약 모든 char가 일정 조건(boolean)이 모두 일치하면 true를 반환하고,

 

하나라도 일치하지 않으면, false를 반환하게 하는 메서드이다.

 

이 all 메서드로 감싸고, isDigit()이라는 숫자인지 아닌지에 따라 불리언을 반환해주는 메서드를 사용했다.

 

다른 방법도 있다.

 

//문자열 다루기 기본
class StringHandlingBasics {
    fun solution(s: String): Boolean = (s.length == 4 || s.length == 6) && s.toIntOrNull() != null
}

해당 값이 int라면 int를 반환하고, 아니라면 null을 반환한다. 이 방법으로 위와 같이

 

표현할 수 있다.

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading