[프로그래머스] qr code

devel_liz·2024년 12월 19일
1

코딩테스트

목록 보기
35/45

🗒 문제



q로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "jerry"가 되므로 이를 return 합니다.

q로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "programmers"가 되므로 이를 return 합니다.


📝 나의 문제풀이

class Solution {
    fun solution(q: Int, r: Int, code: String): String {
      return  code.chunked(q)
            .filter{ it.length > r }
            .map{ it[r] }
            .joinToString("")
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(q: Int, r: Int, code: String): String {
        return code.indices.filter { it % q == r }.joinToString("") { code[it].toString() }
    }
}

🖊 문제 풀이 시 알면 좋을 것

  • indices

    • indices는 컬렉션(예: String, List)의 유효한 인덱스를 범위로 반환하는 프로퍼티입니다.
    • 예를 들어, 문자열이나 리스트의 모든 인덱스를 순회하거나 특정 범위를 설정할 때 유용합니다.
      val text = "abc"
      println(text.indices)  // 출력값: 0..2
  • filter

    • filter는 컬렉션에서 주어진 조건을 만족하는 원소만 새로운 컬렉션으로 반환하는 함수입니다.
    • 이 함수는 원본 컬렉션을 변경하지 않으며, 조건에 맞는 원소들만 추출하여 새로운 리스트를 생성합니다.
      val numbers = listOf(1, 2, 3, 4, 5)
      val evenNumbers = numbers.filter { it % 2 == 0 }
      println(evenNumbers)  // [2, 4]
  • joinToString("")

    • joinToString("")는 컬렉션의 모든 원소를 지정한 구분자(이 경우 ""`, 즉 공백 없이)로 결합하여 하나의 문자열로 반환하는 함수입니다.
    • 구분자를 지정할 수 있으며, 기본적으로 각 원소를 문자열로 변환한 후 결합합니다.
      val words = listOf("hello", "world")
      val result = words.joinToString(" ")
      println(result)  // "hello world"
profile
Android zizon

0개의 댓글

관련 채용 정보