코딩테스트

[25.12.30 코테(Python/MySQL/C)]-약수의 합&잡은 물고기 중 가장 큰 물고기의 길이 구하기&숫자 비교하기

지니248 2025. 12. 30. 18:19

Lv1. 약수의 합 (Python)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/12928

 

내가 작성한 코드

def solution(n):
    answer = 0
    
    for i in range(1, n+1):
        if n % i == 0:
            answer += i
            
    return answer

 

새로 배운 코드

def solution(n):            
    return n + sum([i for i in range(1, (n // 2) + 1) if n % i == 0])
    
# i는 약수로 판별된 숫자
# 1부터 n//2까지 반복 -> n보다 작은 약수 중 가장 큰 값은 n//2 이기 때문
# (n//2)+1 -> range는 끝값을 포함하지 않으므로 n을 2로 나눈 몫에 +1을 해줌
# n%i == 0 -> n을 i로 나눴을 때 나머지가 0이면 i는 n의 약수

Lv1. 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/298515

 

내가 작성한 코드

-- 문자열 합치기 CONCAT(STR1, STR2)
SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO

Lv0. 숫자 비교하기 (C)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

내가 작성한 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int num1, int num2) {
    
    if (num1 == num2) {
        return 1;
    } else {
        return -1;
    }
}

 

새로 배운 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int num1, int num2) {
    int answer = 0;
    
    // 조건 ? 참일때 값 : 거짓일때 값
    return num1 == num2 ? 1 : -1;
}