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
접근
- 배열을 for 문으로 돌리기
- 수식 계산
풀이
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 |