개발일지

2024.01.17 TIL

과일바구니♡ 2024. 1. 17. 21:07

1. 배운내용

  1) 알고리즘코드카타

 

정답

private fun solution(a: IntArray, b: IntArray): Int {
        var answer: Int = 0
        a.forEachIndexed { i, v ->
            answer += v * b[i]
        }
        return answer
 }

 

고수들의 풀이 . 코틀린 스러운 것 같다. 

zip 을 사용하여 map 을 이용한다. zip 은 처음 보는 것 같은데 나중에 유용할 것 같다. 

 

 fun solution(a: IntArray, b: IntArray): Int {
        return a.zip(b).map { it.first * it.second }.sum()
    }

 

다른 고수 mapIndexd 를 사용하여 풀이하였다. sum() 을 사용하는 게 여러모로 편한 풀이같다.

class Solution {
    fun solution(a: IntArray, b: IntArray): Int = a.mapIndexed { index, it -> it * b[index] }.sum()
}

 

이해

1차원 정수배열 a,b

a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1]

내적 return


접근

  1. 배열을 for 문으로 돌리기
  2. 수식 계산

풀이

class Solution {
    fun solution(a: IntArray, b: IntArray): Int {
        var answer: Int = 0
        for (i in a.indices) {
            answer += a[i]*b[i]
        }

        return answer
    }
}

라고 합니다...

 

2) 알고리즘 코드카타 멈춘부분부터 튜터님께 질문함.

   짝수의 합.

  인텔리제이에서 코드 작성, 하나씩 수정하면서 해봄.

지역변수 공부- 반복문안에 있으면 반복문에서만 사용가능, 반복문 밖에 있으면 한 클라스내에서 사용한다.

class Solution {
    fun solution(n: Int): Int { //for문 위에 var sum=0 를 선언해줌으로, 대괄호 안에서 작동하도록 합니다.
        var sum =0
        for(i in 0..n step(2)) {// for(변수  함수)) 여기서 변수를 i라고 하고, 범위를 0 부터 n으로 지정한다. 이는 가변성을 위해서이다. 
             sum= sum +i// step 함수는 지정한 숫자대로 증가한다는 함수이다. 로직에서는 sum= sum+i 로 변수 i를 넣는다.
        }
        return sum //리턴 값으로 sum을 받는다.

 

fun main ( ) {
    val result= Solution( ).solution(4)
    println( result)
}

fum main 함수를 만들고,  중괄호 안에  val result= Solution().solution(n=숫자) 는 식을 써서 결과로 부르고(n= 숫자) 부분에 여러숫자를 넣어 테스트를 할 수있다.  결과를  println(result)로 디버그실행시켜 볼 수 있다.  n부분에 여러가지 가능성이 있어, 위에 class 에서

for(! in 0..n step(2))로  지정했다고 볼 수 있다.

 

-변수공부참고블로그 https://drcode-devblog.tistory.com/161

 

 

3)지난 과제 수정하기, 강의들음, 코드 따라침.

지난 과제 에러가 있어서 수정했다. 그러는 와중에 에러가 났다.

.......

'개발일지' 카테고리의 다른 글

2024.01.19 TIL  (0) 2024.01.19
2024.01.18 TIL  (0) 2024.01.18
2024.01.16 TIL  (1) 2024.01.16
2024.01.15 TIL, KPTF 회고록.  (0) 2024.01.15
2024.01.12 TIL  (1) 2024.01.12