코드카타

[2025/01/22]알고리즘 코드카타 15회차

essay2892 2025. 1. 22. 08:50

PYTHON

1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.

1-1. 입력된 수가 짝수라면 2로 나눕니다. 
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 

예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.

 

def solution(num):
    if num == 1 :
        answer = 0
    else :
        i = 0
        while (num != 1) and (i < 500) :
            if num % 2 == 0 :
                num = num / 2
            else :
                num = num * 3 + 1
            i += 1
        if i == 500 :
            answer = -1
        else :
            answer = i
    return answer

 

SQL

보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.

 

SELECT ANIMAL_ID,
       NAME,
       IF ((SEX_UPON_INTAKE LIKE '%Neutered%') or 
           (SEX_UPON_INTAKE LIKE '%Spayed%'), 
           'O', 'X') '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID