[프로그래머스] 세로 읽기

devel_liz·2024년 12월 19일
1

코딩테스트

목록 보기
34/45

🗒 문제



📝 나의 문제풀이

class Solution {
    fun solution(my_string: String, m: Int, c: Int): String {

     return  my_string.chunked(m)
            .map{ it[c-1] }
            .joinToString("")
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(my_string: String, m: Int, c: Int): String {
        return my_string.chunked(m).map { it[c - 1] }.joinToString("")
    }
}

🖊 문제 풀이 시 알면 좋을 것

  • chunked(size: Int)

    • 문자열을 지정한 크기(size)로 나누어 리스트를 생성합니다.

    • 마지막 덩어리는 남은 글자만 포함합니다(길이가 부족해도 OK).

      val text = "ihrhbakrfpndopljhygc"
      
      // 4글자씩 끊어서 리스트 생성
      val result = text.chunked(4)
      println(result) // [ihrh, bakr, fpnd, oplj, hygc]
  • map

    • map은 단순히 반복하는 역할이 아니라, 컬렉션의 각 원소를 특정 방식으로 변환하여 새로운 컬렉션을 생성하는 변환 메소드입니다.

    • 변환 수행: 각 원소를 특정 방식으로 변환하여 새로운 컬렉션을 반환합니다.

    • 원본 컬렉션은 변경되지 않음: map은 불변성을 유지하며, 원본 데이터는 그대로 두고 새로운 데이터를 생성합니다.

    • 컬렉션의 모든 원소에 적용: 모든 원소에 대해 변환을 적용하고, 결과를 수집합니다.

      val numbers = listOf(1, 2, 3, 4, 5)
      
      // 각 원소를 2배로 변환
      val doubled = numbers.map { it * 2 }
      println(doubled) // [2, 4, 6, 8, 10]

map과 반복 비교:

단순 반복 (for 또는 forEach)은 작업을 수행하고 끝나지만,
map은 변환 결과를 새로운 컬렉션으로 반환합니다.

val numbers = listOf(1, 2, 3)

// 단순 반복
numbers.forEach { println(it * 2) } // 출력: 2, 4, 6

// 변환하여 새로운 리스트 생성
val doubled = numbers.map { it * 2 }
println(doubled) // [2, 4, 6]

profile
Android zizon

0개의 댓글

관련 채용 정보