일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- atcoder beginner contest
- 코딩테스트
- cp
- cp초보
- contest395
- contest397
- atcoder
- 어린 동물 찾기
- ABC
- PCSQL
- 프로그래밍대회
- 경쟁적프로그래밍
- PS
- MIN
- SQL
- 아픈 동물 찾기
- pasql
- 코테
- SQL문제
- 파이썬
- Python
- 집계함수
- 프로그래머스
- Today
- Total
목록알고리즘 (112)
노아
점수: 700등수: 6427 D - Cubes문제분석문제 개요: 양의 정수 N이 주어졌을 때, x^3 - y^3 = N을 만족하는 양의 정수 쌍 (x, y)를 찾아야 함. 쌍이 존재하면 하나를 출력하고, 없으면 -1을 출력.입력:N: 양의 정수 (1≤N≤10^18).출력:x^3 - y^3 = N을 만족하는 (x, y)가 없으면: -1.존재하면: x와 y를 공백으로 구분해 출력 (하나면 충분).제약:1≤N≤10^18 (64비트 정수 범위 내).시간 제한: 2초 (약 10^8 연산).핵심 관찰:x^3 - y^3 = (x - y)(x^2 + xy + y^2) = N.x > y, x - y = d라 하면 N = d (x^2 + xy + y^2).y = k로 두면 x = k + d, 이를 통해 N =..
점수: 1000(4/7)등수: 3879 C - Buy Balls문제분석문제: "C - Buy Balls".입력:N: 검은 공 개수 (1 ≤ N ≤ 2×10^5).M: 흰 공 개수 (1 ≤ M ≤ 2×10^5).B_i: 검은 공 값 (-10^9 ≤ B_i ≤ 10^9).W_j: 흰 공 값 (-10^9 ≤ W_j ≤ 10^9).조건:검은 공 개수 ≥ 흰 공 개수.선택한 공의 값 합 최대화.출력: 최대 합.# 입력 처리n, m = map(int, input().split())b = list(map(int, input().split())) # 검은 공 값w = list(map(int, input().split())) # 흰 공 값# 내림차순 정렬b.sort(reverse=True)w.sort(reve..
점수: 600등수: 6110 A - Strictly Increasing?문제 분석문제: "A - Strictly Increasing?".입력:N: 수열 길이 (2 ≤ N ≤ 100).A: N개의 정수 (1 ≤ A[i] ≤ 1000).조건:수열 A가 엄격히 증가하는지 확인.엄격히 증가: 모든 i (1 ≤ i A[i] .출력: 엄격히 증가하면 "Yes", 아니면 "No" (대소문자 무관).제약: 시간 2초, 메모리 1024MB.# 입력 처리n = int(input())a = [int(input()) for _ in range(n)]# 엄격히 증가하는지 확인is_strictly_increasing = Truefor i in range(n-1): if a[i] >= a[i+1]: is_st..
점수: 600 [3 / 7]등수: 6987 / 10700 문제별 풀이A - Poisonous Oysterfrom collections import dequeimport sys, itertools, math, heapqip, op = sys.stdin, sys.stdoutret = {"sick fine": 2, "sick sick": 1, "fine sick": 3, "fine fine": 4}op.write(f"{ret[ip.readline().rstrip()]}\n")문제요약: 입력 받는 문자열의 종류에 따라 알맞은 숫자를 출력의도: 매우 간단한 경우의 상황을 조건에 따라 해결이 가능한가?접근 방법: 딕셔너리를 이용해 문자열에 대한 값을 가져오는 아이디어를 사용다른풀이: 일반 if문을 사용한 조건 처..

Question 각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요. 이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다. Pseudocode 의사코드CTE 정의 (재귀 쿼리):id와 parent_id가 존재하는 대장균 데이터를 기반으로 트리 구조를 재귀적으로 탐색합니다.parent_id가 NULL인 항목을 첫 번째 세대(gen = 1)로 시작하고, 재귀적으로 부모-자식 관계를 따라가며 gen 값을 1씩 증가시킵니다.메인 쿼리:cte에서 각 개체가 마지막 세대인지 확인하기 위해 자기 자신(a)을 기준으로 자식(b)이 없는 경우를 확인합니다.즉, 자식이 더 이상 없는 개체들만을 대상으로 ..

Question DEVELOPERS 테이블에서 GRADE별 개발자의 정보를 조회하려 합니다. GRADE는 다음과 같이 정해집니다.A : Front End 스킬과 Python 스킬을 함께 가지고 있는 개발자B : C# 스킬을 가진 개발자C : 그 외의 Front End 개발자GRADE가 존재하는 개발자의 GRADE, ID, EMAIL을 조회하는 SQL 문을 작성해 주세요.결과는 GRADE와 ID를 기준으로 오름차순 정렬해 주세요. Pseudocode 서브쿼리로 등급을 매기는 GRADE CTE(공통 테이블 표현식)를 정의:각 개발자(ID)의 SKILL_CODE를 비트 연산을 통해 여러 조건을 체크합니다.먼저, Python 기술을 가지고 있고, 동시에 Front End 기술을 가진 경우를 확인하여 이 개발자에..

Question 2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.Pseudocode 데이터 선택:ECOLI_DATA 테이블에서 모든 행을 선택합니다.조건 설정:GENOTYPE 열의 값이 2와 비트 AND 연산을 했을 때 2가 아닌지 확인합니다. => 2번 형질 보유X 확인GENOTYPE 열의 값이 5와 비트 AND 연산을 했을 때 0이 아닌지 확인합니다. => 1번 or 3번 형질 보유한 것 확인개수 세기:조건을 만족하는 행의 개수를 세어 COUNT라는 별칭으로 반환합니다. Code SELECT COUNT(*) COU..

Question 부모의 형질을 모두 보유한 대장균의 ID(ID), 대장균의 형질(GENOTYPE), 부모 대장균의 형질(PARENT_GENOTYPE)을 출력하는 SQL 문을 작성해주세요. 이때 결과는 ID에 대해 오름차순 정렬해주세요. Pseudocode 선택할 열 지정:ecoli_data 테이블의 id와 genotype을 b에서 가져옵니다.ecoli_data 테이블의 genotype을 a에서 가져와 parent_genotype이라는 별칭을 부여합니다.테이블 조인:ecoli_data 테이블을 두 번 사용하여, 하나는 부모(a), 다른 하나는 자식(b)으로 설정합니다.부모와 자식을 parent_id를 기준으로 조인합니다.조건 설정:a.genotype와 b.genotype의 비트 연산 결과가 a.geno..