jeongminy 2024. 1. 17. 11:29

오늘 한 것

  • 알고리즘, SQL 코드카타 1문제씩 풀기
  • 스탠다드반 세션 - JPA 영속성, dirtyChecking 강의
  • 스파르타 Spring 심화 3, 4, 5, 6, 7, 8, 9강 듣기

 

 

 

 

알고리즘 코드카타

❓ 문제 33. 약수의 개수와 덧셈
문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

✔️ 제한사항
1 ≤ left ≤ right ≤ 1,000

📝 내가 쓴 풀이
class Solution {
    fun solution(left: Int, right: Int): Int {
        var answer = 0
    
        for (num in left..right){
            var count = 0
            for (i in 1..num){
                if (num%i ==0){
                    count ++
                }
            }
            
            if(count%2 ==0){
                answer += num
            } else {
                answer -= num
            }
        }
        return answer
    }
}


📝 다른 사람의 풀이

class Solution {
    fun solution(left: Int, right: Int): Int {
        return (left..right).map { i -> if ((1..i).filter { i % it == 0 }.size % 2 == 0) i else -i }.sum()
    }
}

🕵🏻 URL
https://school.programmers.co.kr/learn/courses/30/lessons/77884

 

💡 알게된 것
 
  • countDivisors 함수는 주어진 수 num의 약수의 갯수를 계산하는 함수이다
    예시) countDivisors(num) //출력: num의 약수의 갯수

 

 

SQL 코드카타

❓ 문제 24. 제목
관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.

📝 내가 쓴 풀이
SELECT I.ANIMAL_ID as ANIMAL_ID, I.NAME as NAME
from ANIMAL_INS as I inner join ANIMAL_OUTS as O on I.ANIMAL_ID = O.ANIMAL_ID
where I.DATETIME > O.DATETIME
order by I.DATETIME

🕵🏻 URL
https://school.programmers.co.kr/learn/courses/30/lessons/59043

 

💡 알게된 것
 
  • 날짜가 더 빠른지 조건을 추가하려면 where절에서 > 를 사용한다.