파이썬 코드카타 28

나머지가 1이 되는 수 찾기 # range()

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. def solution(n): for x in range(2,n+1): if n%x==1: return x # 나머지가 1이 되어야 하니까 답이 될 수 있는 가장 작은 수인 2부터 n 까지의 범위 나머지가 1이 나오는 x 값을 출력 Q. 다른 풀이를 보니 range(2, n) 으로 하는데 왜일까? A. x 가 n 을 나눴을 때 1이 나오는 값을 찾아야하는데, n % n = 0 이기 때문에 x 값의 범위를 n-1 까지의 범위를 주는 것 * if 문에서 나머지가 1인 경우에만 범위를 찾기 때문에 n 이어도 어차..

약수의 합 # range(1,n+1) , append()

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. def solution(n): result = [] # 리스트 생성 for i in range(1,n+1): # 약수를 찾을 범위 구하기 if (n % i == 0): # 범위내의 숫자로 자기자신을 나누어 떨어지거나 0이 되면 약수 result.append(i) # 약수를 리스트에 추가 return sum(result) # 구해진 약수를 합해준다 # range(1,n+1) : 약수는 1과 자신을 포함한다. : 1부터 n까지 범위 구하기 : range 가 실행될 때마다 i 에 저장 n % i == 0 : 정수 n 을 i 로 나누어 0으로 떨어지는게 조건(약수) append() : 리스트의 끝에 새로운 요소 추가..

자릿수 더하기 # 문자열 str

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. def solution(n): result = 0 for i in str(n): result += int(i) return result # N 이 123 일 경우 1,2,3 으로 나눠줘야하기 때문에 문자열 (str) 로 바꿔준다 문자열로 바뀐 N 을 각각 더해줘야 하기 때문에 숫자형(int) 로 변환 숫자형으로 변환된 N 을 result 에 더해주는 것을 반복한다.

짝수와 홀수 # if 삼항연산자, %2==0 과 %2

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. # 내가 짠 코드 def solution(num): if num % 2 == 0: return "Even" else: return "Odd" # 다른 코드 def solution(num): return "Even" if num%2==0 else "Odd" # 삼항연산자 (참일 때 값) if (조건) else (거짓일 때 값) def evenOrOdd(num): if num%2: return "Odd" return "Even" # 삼항연산자를 사용하면 훨씬 더 간결하게 코드를 짤 수 있다. 자주 풀면서 익숙해질 것! # 숫자 0은 False 로 인식 하는데 , ' if num%2: '..

배열의 평균값 # sum() 함수, len() 함수

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. def solution(numbers): result = sum(numbers)/len(numbers) return result # 정수배열: 여러개의 정수를 나열 한 것 sum() 함수 : 리스트, 튜플, 딕셔너리를 인자로 받아 값을 모두 더해준다. : 원소의 합 len() 함수 : 리스트, 튜플, 문자열 등 다양한 객체의 '길이' 를 반환 : 원소의 수

짝수의 합 # range()

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. def solution(n): result = 0 for i in range(n+1): if i % 2 == 0: result += i return result def solution(n): result = 0 for i in range(0,n+1,2): result += i return result # 변수이름 ' result ' 는 0 이다 for i in range(n+1) 0 부터 n 까지의 값을 함수이름 ' i ' 에 출력하는 것을 반복 if i % 2 ==0 result += i 함수이름 ' i ' 가 짝수일 때 변수이름 ' result ' 에 result 값 + i 값 입력 ret..

각도기 # if, elif

각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. def solution(angle): if 0 < angle < 90: return 1 elif angle == 90: return 2 elif 90 < angle < 180: return 3 elif angle == 180: return 4 # 여러가지 조건에 만족하는 값을 구해야하기 때문에 if , elif 로 조건을 추가해준다. # 조건에 만족하지 않을 경우라는 값을 구하는 것이 아니라면 else 문은 생략해도 된다. # =..

두 수의 나눗셈 # int()

정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. def solution(num1,num2): result=(num1/num2)*1000 return int(result) def solution(num1,num2): return int((num1/num2)*1000) # 두가지 방법 다 가능 다른사람이 짠 코드를 보지 않고 구글링 하며 출력해낸 영광의 문제 ㅠㅠ return 도 solution 처럼 함수이름인줄 알았는데 return 함수가 있었다.. 분명 공부했던 내용인데 왜 낯설었는지? ㅋㅋ * return 함수란 : 함수를 실행시켰을 때 생성된 출력 또는 결과 * int() : ..