[프로그래머스] 접미사 배열

devel_liz·2024년 12월 17일
0

코딩테스트

목록 보기
26/45

🗒 문제



📝 나의 문제풀이

class Solution {
    fun solution(my_string: String): Array<String> {
        var answer = mutableListOf<String>()
        for(idx in 1..my_string.length){
            answer.add(my_string.takeLast(idx))
        }
        return answer.sorted().toTypedArray()
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(myString: String) = myString.indices.map(myString::substring).sorted()
}

🖊 문제 풀이 시 알면 좋을 것

  • indices

    • indices는 String이나 List 등의 컬렉션에서 유효한 인덱스 범위를 나타내는 속성입니다. 예를 들어, "banana"라는 문자열의 경우 indices는 0부터 5까지의 범위인 0..5를 반환합니다. 이 범위는 문자열의 각 인덱스를 순회하기 위해 사용됩니다.

      val myString = "banana"
      println(myString.indices)  // 출력: 0..5
      
    • 적용: myString.indices는 "banana" 문자열의 인덱스 범위인 0..5를 반환하고, 이 인덱스 범위에서 각 인덱스를 순차적으로 처리하려고 합니다.

  • map(myString::substring)

    • map은 주어진 컬렉션의 각 요소에 대해 특정 함수를 적용하고 그 결과를 새로운 리스트로 반환하는 함수입니다. 여기서는 각 인덱스에 대해 myString.substring() 함수를 호출하여 접미사를 추출하는 데 사용됩니다.

    • myString::substringmyString.substring(startIndex: Int) 함수에 대한 참조를 의미합니다. 각 인덱스에 대해 substring을 호출하여 해당 인덱스에서부터 끝까지의 접미사를 반환합니다.

      val myString = "banana"
      val substrings = myString.indices.map(myString::substring)
      println(substrings)  // 출력: ["banana", "anana", "nana", "ana", "na", "a"]
      
    • 적용: myString.indices.map(myString::substring)는 "banana"에서 각 인덱스마다 접미사를 잘라서 새로운 리스트로 만듭니다. 결과적으로 ["banana", "anana", "nana", "ana", "na", "a"]가 생성됩니다.

  • substring(startIndex: Int)

    • Kotlin의 String 확장 함수로, 주어진 시작 인덱스부터 문자열의 끝까지의 부분 문자열을 반환합니다.

    • startIndex: 부분 문자열을 시작할 인덱스를 지정하는 값입니다. 이 인덱스는 포함됩니다.

    • 반환값: startIndex부터 문자열의 끝까지 잘라낸 새로운 문자열을 반환합니다.

      val myString = "banana"
      val result = myString.substring(2)
      println(result)  // 출력: "nana"
      
    • startIndex가 0일 때

      val myString = "banana"
      val result = myString.substring(0)
      println(result)  // 출력: "banana"
  • sorted()

    • sorted()는 리스트를 사전순(오름차순)으로 정렬하는 함수입니다. 주어진 리스트가 문자열이라면, 문자열의 사전순으로 정렬됩니다.

      val substrings = listOf("banana", "anana", "nana", "ana", "na", "a")
      val sortedSubstrings = substrings.sorted()
      println(sortedSubstrings)  // 출력: ["a", "ana", "anana", "banana", "na", "nana"]
      
    • 적용: sorted()는 접미사 리스트를 사전순으로 정렬합니다. 결과적으로 ["a", "ana", "anana", "banana", "na", "nana"]로 정렬됩니다.

profile
Android zizon

0개의 댓글

관련 채용 정보