[프로그래머스] 수 조작하기 2

devel_liz·2024년 11월 25일
0

코딩테스트

목록 보기
11/45

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(numLog: IntArray): String {
        var answer = StringBuilder()
        numLog.forEachIndexed{ i, _ ->
        if(i == (numLog.size -1)) return answer.append("").toString()
          when(numLog[i+1] - numLog[i]){
                    +1 -> answer.append("w")
                    -1 -> answer.append("s")
                    +10 -> answer.append("d")
                    -10 -> answer.append("a")
              else -> answer.append("")
            }
            
        }
        return answer.toString()
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(numLog: IntArray): String {
        return (1..numLog.lastIndex).map {
            when (numLog[it] - numLog[it-1]) {
                1 -> 'w'
                -1 -> 's'
                10 -> 'd'
                else -> 'a'
            }
        }.joinToString("")
    }
}

🖊 문제 풀이 시 알면 좋을 것

  • StringBuilder()

    • 문자열을 효율적으로 생성하고 수정할 수 있는 클래스입니다. 일반적으로 문자열을 여러 번 연결할 때, StringBuilder를 사용하는 것이 더 성능이 좋습니다. 이는 문자열을 변경할 때마다 새로운 객체를 생성하는 대신, 내부 버퍼를 이용해 메모리 할당을 최소화하고 문자열을 변경할 수 있기 때문입니다.

      • append(): 문자열을 끝에 추가합니다.

      • insert(): 지정된 위치에 문자열을 삽입합니다.

      • delete(): 문자열의 특정 범위를 삭제합니다.

      • replace(): 특정 범위의 문자열을 다른 문자열로 교체합니다.

      • toString(): StringBuilder에 저장된 문자열을 일반 String으로 변환합니다.

        fun main() {
        // StringBuilder 객체 생성
        val stringBuilder = StringBuilder()
        
        stringBuilder.append("Hello")
        stringBuilder.append(" ")
        stringBuilder.append("World!")
        
        // 최종 문자열 출력
        println(stringBuilder.toString())  // 출력: Hello World!
        }
  • lastIndex

    • 배열이나 리스트의 마지막 인덱스를 나타내는 속성입니다.
    • 예를 들어, numLog.lastIndex는 numLog 배열의 마지막 인덱스를 반환합니다. 이는 numLog.size - 1과 같은 값입니다.
  • map

    • map은 컬렉션(예: 리스트, 배열)의 각 요소를 변환하여 새로운 컬렉션을 생성하는 함수입니다. 각 요소에 대해 변환 작업을 하고, 그 결과로 새로운 리스트나 배열을 반환합니다.

      fun main() {
        val numbers = listOf(1, 2, 3, 4, 5)
        
        // 각 숫자에 2를 곱한 새로운 리스트 생성
        val doubled = numbers.map { it * 2 }
      
        println(doubled)  // 출력: [2, 4, 6, 8, 10]
      }
      
      
  • joinToString

    • joinToString은 컬렉션의 각 요소를 하나의 문자열로 결합하는 함수입니다. 이때 각 요소 사이에 구분자를 추가할 수 있습니다.
      fun main() {
        val words = listOf("Kotlin", "is", "fun")
        
        // 구분자 없이 리스트의 문자열을 합침
        val sentence = words.joinToString(" ")
        
        println(sentence)  // 출력: Kotlin is fun
      }
profile
Android zizon

0개의 댓글

관련 채용 정보