코딩테스트

[25.12.31 코테(Python/MySQL/C)]-내적&헤비 유저가 소유한 장소&정수 제곱근 판별

지니248 2025. 12. 31. 13:53

Lv1. 내적 (Python)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/70128?language=python3

 

내가 작성한 코드

def solution(a, b):
    answer = 0
    
    for i in range(len(a)):
        answer += a[i] * b[i]
    return answer

 

새로 배운 코드

def solution(a, b):
    
    return sum([x * y for x, y in zip(a,b)])
# zip(a, b)
# a와 b의 같은 인덱스에 있는 값들을 묶어서 (a[0],b[0]), (a[1],b[1]) 형태로 만들어주는 역할

# x * y
# 같은 위치에 있는 두 값 (a[i], b[i])을 곱한다

# [x * y for x, y in zip(a, b)]
# 각 위치의 곱을 리스트로 만든다

# sum()
# 만들어진 곱들의 리스트를 모두 더해 최종 내적 값을 구한다

Lv3. 헤비 유저가 소유한 장소 (MySQL)

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

 

내가 작성한 코드

-- 메인 쿼리
-- 공간 정보 조회, 헤비 유저들이 등록한 공간 행만 PLACES에서 조회
SELECT *
FROM PLACES
WHERE HOST_ID IN (
                  -- 서브 쿼리
                  -- 헤비 유저 찾기, 공간을 2개 이상 등록한 유저(HOST_ID)만 골라냄
                  SELECT HOST_ID
                  FROM PLACES
                  GROUP BY HOST_ID
                  HAVING COUNT(*) >= 2)

Lv1. 정수 제곱근 판별 (C)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/12934?language=c

 

내가 작성한 코드

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

long long solution(long long n) {
    long long answer = 0;
    long long x = sqrt(n); // sqrt(n): n의 제곱근 구하는 함수
    
    if (x * x == n)
        answer = (x+1) * (x+1);
    else
        answer = -1;
    return answer;
}

 

새로 배운 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <math.h> // sqrt(), pow() 함수 사용 위해 필요

long long solution(long long n) {
    long long answer = 0;
    
    // n이 어떤 정수 x의 제곱근이라면
    // sqrt(n) = x
    if ((int)sqrt(n) == sqrt(n))
        // pow(밑, 지수)
        // (x+1)의 제곱을 구해서 answer에 저장
        answer = pow((sqrt(n)+1), 2);
    else
        answer = -1;
    return answer;
}