본문 바로가기

분류 전체보기40

SolveSQL :: 난이도 3 문제풀이 1. 복수 국적 메달 수상한 선수 찾기2000년 이후의 메달 수상 기록만 고려했을 때, 메달을 수상한 올림픽 참가 선수 중 2개 이상의 국적으로 메달을 수상한 기록이 있는 선수의 이름을 조회하는 쿼리를 작성. 조회된 선수의 이름은 오름차순으로 정렬.SELECT A.NAMEFROM RECORDS R LEFT JOIN ATHLETES A ON R.ATHLETE_ID = A.ID LEFT JOIN GAMES G ON R.GAME_ID = G.ID LEFT JOIN TEAMS T ON R.TEAM_ID = T.IDWHERE G.YEAR >= 2000 AND R.MEDAL IS NOT NULLGROUP BY R.ATHLETE_IDHAVING COUNT(DISTINCT T.TEAM) > 1OR.. 2025. 3. 25.
SolveSQL :: 난이도 2 문제풀이 1. 두 테이블 결합하기역대 올림픽 정보 데이터셋은 역대 올림픽 경기와 관련된 데이터가 들어있는 테이블로 이루어져 있습니다. athletes 테이블에는 역대 올림픽 참가 선수의 이름이 들어 있습니다. events 테이블에는 종목과 경기 이름이 들어 있습니다. games 테이블에는 올림픽 개최 연도, 개최 도시와 시즌 정보가 기록되어 있습니다. records 테이블에는 역대 올림픽 참가 선수들의 신체 정보와 획득한 메달 정보가 기록되어 있습니다. 이 테이블은 다른 테이블과 매핑할 수 있는 ID 정보도 가지고 있습니다. teams 테이블에는 국가 정보가 기록되어 있습니다. 위 테이블 중 events 테이블과 records 테이블을 활용해 올림픽 골프 종목에 참가한 선수의 ID를 모두 조회하는 쿼리를 작성해주.. 2025. 3. 25.
SolveSQL :: 난이도 1 문제풀이 1. 모든 데이터 조회하기points 테이블은 프란시스 앤스컴이 만든 Anscombe's quartet 데이터를 담고 있습니다. 이 데이터는 quartet 컬럼에 의해 4개의 서브셋으로 나뉘어지고, 각 서브셋은 평균, 표본 분산, 상관계수 등이 거의 동일하나 데이터의 분포를 시각화하면 전혀 다른 분포를 가지는 특징이 있습니다. points 테이블에 있는 모든 데이터를 조회하는 쿼리를 작성해주세요.SELECT *FROM POINTS; 2. 일부 데이터 조회하기points 테이블은 프란시스 앤스컴이 만든 Anscombe's quartet 데이터를 담고 있습니다. 이 데이터는 quartet 컬럼에 의해 4개의 서브셋으로 나뉘어지고, 각 서브셋은 평균, 표본 분산, 상관계수 등이 거의 동일하나 데이터의 분포를 .. 2025. 3. 25.
[Algorithm] DFS/BFS 1. 자료구조 기초 개념탐색: 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정자료구조: 데이터를 표현하고 관리하기 위한 구조 (삽입 Push, 삭제 Pop → 두 가지가 핵심적인 함수) 스택과 큐를 사용할 때에는 오버플로와 언더플로를 항상 고려해야 함 ! 오버플로(Overflow)는 특정 자료구조가 수용할 수 있는 데이터의 크기를 이미 가득 찬 상태에서 연산 수행 시 발생. 즉, 저장 공간을 벗어나 데이터가 넘쳐 흐를 때 발생함. 언더플로(Underflow)는 특정한 자료구조에 데이터가 전혀 들어 있지 않은 상태에서 연산 수행 시 발생.  스택 (Stack)선입 후출 구조 (박스 쌓기에 비유하기. 밑에 있는 박스는 맨 위에 박스를 꺼내야 뺄 수 있음)별도의 라이브러리 필요없이 기본 리스트에서 appe.. 2025. 3. 20.
[C언어] 사소한 주의사항 (내가 보는 용도 ✏️ 계속 수정 중) 1. if 조건문을 사용 할 때, 조건식 전체를 괄호로 감싸야 함if ((number % n == 0) && (number % m == 0)) {   2. C 언어에서는 Python처럼 ** 연산자를 사용하여 거듭제곱을 계산할 수 없음int result = 2 ** 2;  // C에서는 사용 불가 → 컴파일 오류 발생해결 방법pow() 함수 사용 (#include 필요) : pow(2, 2)는 2^2* 연산자 사용 : 2 * 2는 2^2비트 연산자 ( 3. strcmp() 함수란?strcmp() 함수는 C 언어에서 두 문자열을 비교하는 함수문자열이 같으면 0, 첫 번째 문자열이 크면 양수, 작으면 음수를 반환#include #include // strcmp() 함수가 선언된 헤더파일int main().. 2025. 3. 20.
[C언어] 리스트(배열)의 길이 구하기 1. 정적 배열의 길이 구하기 (sizeof 사용) sizeof(arr): 배열 전체 크기 (바이트 단위)sizeof(arr[0]): 배열의 한 원소 크기 (바이트 단위)배열 길이 = 전체 크기 ÷ 한 원소 크기🚨 주의: sizeof 방식은 포인터에는 적용되지 않는다. #include int main() { int arr[] = {1, 2, 3, 4, 5}; int length = sizeof(arr) / sizeof(arr[0]); // 전체 크기 ÷ 원소 하나 크기 printf("배열 길이: %d\n", length); // 출력: 5 return 0;} 2. 문자열(널 종료 문자열)의 길이 구하기 (strlen 사용)strlen()은 널 문자(\0)를 포함하지 않는다.즉,.. 2025. 2. 28.
[C언어] 문자열 복사 후, 왜 answer[s] = '\0';을 넣어야 하는가 strncpy 함수지정한 길이만큼 문자열을 복사하지만, 복사한 문자열에 자동으로 널 종료 문자('\0')를 추가하지 않을 수 있음.하지만,  만약 복사한 길이가 정확히 s라면, 그 다음에 어떤 값이 있을 수 있기 때문에 answer[s]는 원하지 않는 값이 들어갈 수 있음.예를 들어, strncpy(answer, my_string, s);라고 하면 my_string의 앞 s개 문자를 answer에 복사. 하지만 복사한 문자열이 s개라면, 그 뒤에 answer[s]는 무엇인가 쓰일 수 있기 때문에 널 종료 문자를 수동으로 추가해야 함. 결국, 문자열을 제대로 처리하려면 끝에 '\0'이 있어야 한다.C 문자열 함수들(strcat, printf 등)은 문자열이 '\0'으로 끝날 때까지 처리하므로, 문자열의 끝.. 2025. 2. 28.
[Python] 프로그래머스 알고리즘 고득점 Kit ✅ 완전탐색 (~ing) [Level 1] 최소 직사각형def solution(sizes): answer = 0 w_list = [] h_list = [] for size in sizes: # 큰 값들은 다 왼쪽으로 넘기기 if size[0]  [Level 1] 모의고사def solution(answers): answer = [] # 수포자 답안 패턴 person_1 = [1, 2, 3, 4, 5] person_2 = [2, 1, 2, 3, 2, 4, 2, 5] person_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] # 맞은 개수 count one_count = 0 ; two_count = 0 ;.. 2025. 2. 25.
[Python] 프로그래머스 알고리즘 고득점 Kit ✅ 탐욕법 (Greedy) (~ing) [Level 1] 체육복def solution(n, lost, reserve): # 조건 5 (본인 것 잃어버린 경우, 본인 옷으로 대체) set_lost = set(lost) - set(reserve) # 차집합 활용하여 공통 부분 제거 set_reserve = set(reserve) - set(lost) # 한 명씩 옷 매칭해서 제외 (여벌 가진 3번은 2번과 4번에게만 빌려줄 수 있음 !!) for r in set_reserve: if r-1 in set_lost: set_lost.remove(r-1) elif r+1 in set_lost: set_lost.remove(r+1) answer = n.. 2025. 2. 20.
[ML] 사이킷런 주요 모듈 / Model Selection :: 학습/테스트셋 분리, 교차 검증, GridSearchCV (작성 중) 01. 사이킷런 기반 프레임워크사이킷런은 API 일관성과 개발 편의성을 제공하기 위한 패키지→ ML 모델 학습을 위해 fit(), 학습된 모델의 예측을 위해 predict() 메서드 제공 Estimator 클래스는 분류 알고리즘을 구현한 클래스를 Classifier, 회귀 알고리즘으로 구현한 클래스를 Regressor로 칭하는데 이를 합쳐서 Estimator 클래스라고 부름. 즉, 분류(Classifier) + 회귀(Regression) → 교차 검증에 활용하는 cross_val_score(), 교차 검증과 하이퍼 파라미터 튜닝을 동시에 수행하는 GridSearchCV.fit() 함수도 이 Estimator의 fit()과 predict()를 호출하여 평가하거나 튜닝을 수행하는 것 fit() : 학습의 의.. 2024. 11. 22.