오늘의 목표는 2주 차 강의를 다 듣는 것이었는데, 지키지 못했다. 디버그하니까 한글이 깨지는 문제가 발생했고 구글링을 해서 하란 대로 했는데도 문제가 해결되지 않았다. 튜터님을 찾아가서 여쭤보았는데도 여전히 해결되지 않은 상태이다. 그래도 오늘은 9시 이후에 갑자기 여러 사람과 이야기를 나누며 시간을 보내서 즐겁게 마무리할 수 있었다. 개인 과제도 시도해 보려고 했는데 막상 시작하려고 하니까 어떻게 해야 할지 막막함에 제대로 된 시도도 못 해보고 다시 강의로 돌아왔다. 빨리 강의 다 듣고 과제하고 싶다.
문제 : 937년 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을 반환해 주세요.
num
은 1 이상 8,000,000 미만인 정수입니다.class Solution {
public int solution(long num) {
int answer = 0;
while(num != 1) {
if(num % 2 == 0)
num /= 2;
else
num = num * 3 + 1;
answer++;
if(answer >= 500) {
answer = -1;
break;
}
}
return answer;
}
}
문제 : 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 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') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
IF문에 대해서 알게 되었다.
또한 case where문을 사용하여 작성할 수도 있다는 것을 알게 되었다. 이 때는 조건을 기반으로 값을 반환하는 형식으로 작성할 수 있다.