https://school.programmers.co.kr/learn/courses/30/lessons/12928
def solution(n):
result = 0
for i in range(1, n+1): # 1~n 까지의 범위 설정
if n % i ==0: # 범위에서 약수 추출
result = result + i # 약수 전부 더하기
return result
https://school.programmers.co.kr/learn/courses/30/lessons/12954
# return 은 for 반복문 바깥에 있어야 한다. 안에 있으면 첫 번째 반복이 끝나자마자 값을 반환한다.
def solution(x, n):
answer = []
for i in range(n): # n개의 숫자를 지니는 리스트
answer.append(x * (i + 1)) # x 부터 시작해 x씩 증가하는 숫자
return answer
answer.append(x * (i + 1))x 부터 시작해 x씩 증가하는 숫자참고 블로그
1. str() 문자형으로 변환
2. int() 정수형으로 변환 / float는 소수점 이하 버림
3. float() 실수형으로 변환 -> bool 형의 경우 True == 1.0, False == 0.0
4. bool() 모든 자료형은 bool로 변환 가능, 숫자 0 == False, 0 이 아니면 True
sorted([5, 2, 3, 1, 4])
결과: [1, 2, 3, 4, 5]
내림차순 정렬 sort(reverse=True)
리스트 순서 뒤집기 reverse()
- reverse() 메서드는 리스트를 정렬/역정렬하는 것이 아니라 단순히 순서를 뒤집는 것이다.
예를 들어 a_list = [1, 12, 3] 일 때
a_list.reverse()
def solution(n):
list_str = list(str(n)) # 문자열을 리스트로 변환
list_str.sort(reverse=True) # 리스트를 정렬
answer = ''.join(list_str) # 리스트를 다시 문자열로 변환
return int(answer) # 정수로 변환
a = [5, 2, 3, 1, 4]
a.sort()
결과:
a
[1, 2, 3, 4, 5]
문자열을 연결하는 데 사용된다. 특히, 튜플과 같은 반복 가능한 객체에 있는 문자열들을 하나의 문자열로 합치는 데 유용하다.
형태: separator.join(iterable)
separator: 각 문자열 사이에 삽입될 문자열로 보통 빈 문자열(''), 공백(' '), 콤마(',') 등을 사용한다.iterable: 문자열들이 포함된 반복 가능한 객체(리스트, 튜플 등)words = ['Hello', 'world', 'from', 'ChatGPT']
sentence = ' '.join(words)
print(sentence) # Output: "Hello world from ChatGPT"
사용 문제
https://www.w3schools.com/python/python_lists_comprehension.asp
⭐[expression for item in iterable if condition]⭐
ex) for 문 -> list comprehension
# for 루프
digits = []
for digit in str(x):
digits.append(int(digit))
# list comprehension
digits = [int(digit) for digit in str(x)]
위에서 보이듯 for문의 기능을 간결하게 한 줄로 표현할 수 있는 것이 리스트 컴프리헨션이다.
https://school.programmers.co.kr/learn/courses/30/lessons/151138
DATEDIFF(2022-01-01,2022-01-01) 를 돌렸을 때 1 을 예상했으나 0을 반환한다. 따라서 원하는 값을 반환받기 위해서는 DATEDIFF(2022-01-01,2022-01-01)+1 을 적어줘야 한다.
이처럼 계산식을 점검하는 칼럼을 하나 만들어서 점검해주면 정확도가 올라간다.
SELECT HISTORY_ID,
CAR_ID,
DATE_FORMAT(START_DATE, "%Y-%m-%d") START_DATE,
DATE_FORMAT(END_DATE, "%Y-%m-%d") END_DATE,
#DATEDIFF(END_DATE, START_DATE), <- 검증 칼럼! DATEDIFF 같은 날로 했을 때 1 이 아니라 0으로 나오는 것을 확인!
CASE WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 30 THEN '장기 대여' # 30일 이상이면 장기, 미만이면 단기
ELSE '단기 대여' END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE "2022-09%" # 대여 시작일이 2022년 9월에 속하는 대여 기록
ORDER BY HISTORY_ID DESC # ID를 기준으로 내림차순 정렬
https://school.programmers.co.kr/learn/courses/30/lessons/12947
def solution(x):
digits = []
for digit in str(x):
digits.append(int(digit))
sum_of_digits = sum(digits)
if x % sum_of_digits == 0:
return True
else:
return False
# 위 코드의 for 루프를 list comprehension 한 코드는 다음과 같다.
def solution(x):
digits = [int(digit) for digit in str(x)] # list comprehension 문법을 통해 digit [] 를 만들고 시작한다.
sum_of_digits = sum(digits)
if x % sum_of_digits == 0:
return True
else:
return False
https://teamsparta.notion.site/Python-3-ee4992c7aac64fe1b42183f97942483a