codekata 34

[프로그래머스] #14 약수의 합 (MB, ms 성능확인)

▶ 문제정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수 만들기  ▶ 제한사항n은 0 이상 3000 이하인 정수 ▶ 풀이정수 n을 1부터 자기 자신까지로 하나씩 돌아가면서 나눠준 다음, 그 중에서 나머지가 0일 경우에만 변수 answer 에다가 하나씩 더해주면 끝!def solution(n): answer = 0 for i in range(1,n): if n % i == 0: answer += i return answer # 틀림..틀림 근데 이번엔 오류코드가 뜨는 것도 아니고 정상 작동하는데 그냥 틀렸다.ㅠ킹받는 이모티콘 어 근데 결과를 읽어보니까 나의 (틀린)결과값에 뭔가 규칙이 있다.정답보다 n 만큼 작은 숫자가 나온다는 것! (28-..

codekata 2024.07.17

[프로그래머스] #13 자릿수 더하기 (iterable)

▶ 문제자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 함수 만들기.ex) N = 123 이면 1 + 2 + 3 = 6 을 return 한다.  ▶ 제한사항N의 범위 : 100,000,000 이하의 자연수 ▶ 풀이def solution(n): answer = 0 # 숫자변수, 초기값=0 for i in n: # n을 돌면서 answer += i # 하나씩 더하기 return answer # TypeError: 'int' object is not iterableㅠ 오답,...숫자형 'int' 객체는 반복할 수가 없다. iterable을 여기서 보네!!! 수업중에 들었던거다.각 자료형은 class로 지정되어 ..

codekata 2024.07.17

[프로그래머스] #12 평균 구하기

▶ 문제정수를 담고 있는 배열 arr의 평균값을 return하는 함수 solution 만들기 ▶ 제한사항arr은 길이 1 이상, 100 이하인 배열arr의 원소는 -10,000 이상 10,000 이하인 정수 ▶ 풀이def solution(arr): return sum(arr)/len(arr) sum(arr) : 배열 arr 내 요소들의 합을 구해주는 함수len(arr) : 배열 arr의 길이(요소들의 갯수)를 구해주는 함수 제한사항에 배열 arr의 길이가 1 이상이라는 말이 있어서 고려 안했는데,만약 배열 arr의 길이가 0일 경우에는 Zero division Error 가 생겨버린다.def solution(arr): if len(arr) == 0: # 분모가 0일경우 ..

codekata 2024.07.17

[프로그래머스] #11 짝수와 홀수 (if_bool)

▶ 문제정수 num이 짝수인 경우 "Even"을 반환하고, 홀수인 경우 "Odd"를 반환하는 함수 solution 만들기 ▶ 제한 조건num은 int 범위의 정수0은 짝수 ▶ 풀이def solution(num): if num % 2 == 0: return "Even" else: return "Odd"2로 나눈 나머지를 이용해서 풀기! 쉽다 여기서if문의 결과값이 '존재한다' 면 True 이므로 return 값이 반환되고,if문의 결과값이 '없다(0)' 면 False 이므로 if문이 실행되지 않는다. 그점을 이용하면굳이 == 0 을 사용하지 않고 다음과 같이 간략하게 표현할 수도 있다!def solution(num): if num % 2: # ==..

codekata 2024.07.17

[프로그래머스] #9 짝수의 합

▶ 문제정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 return 하도록 solution 함수 만들기.  ▶ 제한사항0  ▶ 풀이def solution(n): if n % 2 == 0: return (n/2) * (n/2 + 1) else: return ((n-1)/2) * ((n-1)/2 + 1)통과!나는 n이 짝수일 때와 홀수일 때를 나눈 다음에등차수열의 합을 이용해서 n 이하의 짝수합을 구했다. 근데range(), sum() 함수로 등차수열 합 계산을 더 직관적으로 할 수 있다def solution(n): return sum(range(2, n + 1, 2))2부터 n까지의 숫자들을 2칸씩 점프해서 더하는 방법....멋지다

codekata 2024.07.16

[프로그래머스] #8 각도기 (한줄 if)

▶ 문제각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각, 180도는 평각으로 분류함. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수 만들기.예각 : 0 직각 : angle = 90둔각 : 90 평각 : angle = 180 ▶ 제한사항0 angle 은 정수입니다. ▶ 풀이def solution(angle): if 0 통과! 제한사항을 이용해서(angle은 어차피 0초과 180이하일테니)이렇게 한줄로 깔끔하게 줄여서 쓸수도 있다.def solution(angle): return 1 if angle

codekata 2024.07.15

[프로그래머스] #7 두 수의 나눗셈 (정수부분 반환)

▶ 문제정수 num1과 num2가 매개변수로 주어짐num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수 만들기 ▶ 제한사항0 0   ▶ 풀이def solution(num1, num2): answer = num1 / num2 * 1000 return int(answer)통과!int 로 변환하면 소숫점은 버리고 정수부분만 빼내올 수 있다.새로 알게된 사실. 그리고 연산법칙을 이용해서 정수부분만 빼오는 방법도 있다.def solution(num1, num2): answer = (num1 / num2 * 1000) // 1 return answer이런식으로몫// 연산자로 굳이 int를 쓰지 않고도 정수부분만 반환 가능하다.내가 알고있는 ..

codekata 2024.07.15

[프로그래머스] #5 숫자 비교하기 (한줄 if)

▶ 문제정수 num1과 num2가 매개변수로 주어짐.두 수가 같으면 1, 다르면 -1을 return하도록 solution 함수 만들기. ▶ 제한사항0 ≤ num1 ≤ 10,0000 ≤ num2 ≤ 10,000  ▶ 풀이def solution(num1, num2): if num1 == num2: return 1 else: return -1통과! 알게된 사실if 문은 한줄로도 쓸 수가 있다def solution(num1, num2): return 1 if num1==num2 else -1이렇게 영어문장 쓰는 것처럼 간결하게 쓸수도 있다

codekata 2024.07.15