안녕하세요! 오늘은 본캠프 21일차입니다!!
팀 프로젝트 한지 3일차인데 데이터가 말썽이라 튜터님들도 고생하고 계시는 것 같아요.. ㅜㅜ
오늘의 코드카타!
<Python>
콜라츠 추측
문제 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같음.
- 입력된 수가 짝수라면 2로 나눕니다.
- 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
- 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환
제한
입력된 수 num은 1 이상 8,000,000 미만인 정수
def solution(num):
answer = 0
while num != 1:
if answer >= 500:
return -1
if num % 2 == 0:
num = num // 2
else:
num = num * 3 + 1
answer += 1
return answer
| while num != 1: | 문제에서 1이 될 때까지 Collatz작업을 반복하라고 했으니까, 1이 아니면 while 계속 순회 |
| if answer >= 500: return -1 |
조건1) 문제에서 500이 넘으면 -1을 반환하라고 함 |
| answer += 1 | answer +=1의 들여쓰기 위치가 중요한데, num이 1이 아닐때마다 블록 안의 코드(정수/짝수 판별 및 계산)을 반복해서 실행함 answer를 거친 후, while로 돌아가서 다시 계산하니까 while 문이 한 번 반복될 때마다 무조건 answer는 한 번씩 실행됨! 그래서 num이 1이 될 때까지 작업을 몇 번 했는지를 answer가 물어보는 것임 |
★ FOR문이 아니라 WHILE문을 써야하는 이유:
- for문은 "정해진 횟수만큼 반복"할 때 사용
- While문은 "특정 조건이 만족될 때까지 반복"할 때 사용(여기서는 num=1때까지)
* for i in range(500)은 비효율적(break 필요) + 무엇보다 500회 반복 끝나도 num이 1이 안 되면 걍 -1반환 가능=오답
★오답노트★
while문을 사용해야하는데 for문을 사용하였고 while문을 사용할 생각을 하지 못했음.
answer += 1을 사용해야한다는 생각을 하지 못함.
<SQL>
중성화 여부 파악하기
문제 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시
select animal_id,
name,
case
when sex_upon_intake like '%Neutered%' or sex_upon_intake like '%Spayed%' then "O"
else "X" end as "중성화"
from animal_ins
order by animal_id
then의 내용이 같다면, sex_upon_intake like '%Neutered%' 랑 like '%Spayed%'는 or로 같이 한 줄에 작성 가능
★오답노트★
case when문을 사용해야하는데 떠오르지 않았음.
end가 끝나고 "중성화"라는 별명을 붙여야하는데 sex_upon_intake 바로 뒤에 붙였음.
방법 2 ) IF
select animal_id,
name,
if(sex_upon_intake like like '%Neutered%' or sex_upon_intake like '%Spayed%', 'O', 'X') as '중성화'
from animal_ins
order by animal_id
그리고 나머지 시간은 기초 프로젝트하는 데 시간을 다 썼습니다 쿄쿄
데이터 분석하는데 시간이 엄청 빨리가네요..
결국 저희 팀은 10시 넘어서 끝났어요...
데이터를 너무 깊게 파서 보나 싶기도 하고 데이터 분석을 했을 때 딱 어떤 점이 문제다! 이렇게 확 보이는 데이터가 없어서 어려워요 ... ㅜㅜ
오늘도 수고하셨습니다~!
'2025 내일배움캠프 QAQC_2기' 카테고리의 다른 글
| 2025 내일배움캠프 QAQC_2기 본캠프 23일차 (1) | 2025.06.13 |
|---|---|
| 2025 내일배움캠프 QAQC_2기 본캠프 22일차 (0) | 2025.06.12 |
| 2025 내일배움캠프 QAQC_2기 본캠프 20일차 (1) | 2025.06.10 |
| 2025 내일배움캠프 QAQC_2기 본캠프 19일차 (3) | 2025.06.09 |
| 2025 내일배움캠프 QAQC_2기 본캠프 18일차 (0) | 2025.06.05 |