Processing math: 100%

코딩테스트 12

[백준 Python] 2252번 줄 세우기

문제 N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다. 일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다. 학생들의 번호는 1번부터 N번이다. 출력 첫째 줄에 학생들을 앞에서부터 줄을 세운 결과를 출력한다. 답이 여러..

[백준 Python] 9372번 상근이의 여행

문제 상근이는 겨울방학을 맞아 N개국을 여행하면서 자아를 찾기로 마음먹었다. 하지만 상근이는 새로운 비행기를 무서워하기 때문에, 최대한 적은 종류의 비행기를 타고 국가들을 이동하려고 한다. 이번 방학 동안의 비행 스케줄이 주어졌을 때, 상근이가 가장 적은 종류의 비행기를 타고 모든 국가들을 여행할 수 있도록 도와주자. 상근이가 한 국가에서 다른 국가로 이동할 때 다른 국가를 거쳐 가도(심지어 이미 방문한 국가라도) 된다. 입력 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 주어진다. 이후 M개의 줄에 a와 b 쌍들이 입력된다..

[백준 Python] 1717번 집합의 표현

문제 초기에 n+1개의 집합 {0},{1},{2},,{n}이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작성하시오. 입력 첫째 줄에 n, m이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 a가 포함되어 있는 집합과, b가 포함되어 있는 집합을 합친다는 의미이다. 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산은 1 a b의 형태로 입력이 주어진다. 이는 ab가 같은 집합에 포함되어 있는지를 확인하는 연산이다. 출력 ..

[백준 Python] 2343번 기타레슨

문제 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경우에는 강의의 흐름이 끊겨, 학생들이 대혼란에 빠질 수 있기 때문이다. 즉, i번 강의와 j번 강의를 같은 블루레이에 녹화하려면 i와 j 사이의 모든 강의도 같은 블루레이에 녹화해야 한다. 강토는 이 블루레이가 얼마나 팔릴지 아직 알 수 없기 때문에, 블루레이의 개수를 가급적 줄이려고 한다. 오랜 고민 끝에 강토는 M개의 블루레이에 모든 기타 강의 동영상을 녹화하기로 했다. 이때, 블루레이의 크기(녹화 가능한 길이)를 최소로 하려고 한다. 단, M개의 블루레이는 모두 같은 크기이어야 한다. 강토의 각 강의의 길이가 ..

[백준 Python] 2512번 예산

문제 국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것이다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있다. 그래서 정해진 총액 이하에서 가능한 한 최대의 총 예산을 다음과 같은 방법으로 배정한다. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정한다. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산요청에는 모두 상한액을 배정한다. 상한액 이하의 예산요청에 대해서는 요청한 금액을 그대로 배정한다. 예를 들어, 전체 국가예산이 485이고 4개 지방의 예산요청이 각각 120, 110, 140, 150이라고 하자. 이 경우, 상한액을 127로 잡으면, 위의 요청들에 대해서 각각 120, 1..

[프로그래머스 SQL] NULL 문제 풀어보기

0.기본 테이블 설명 1. 이름이 없는 동물의 아이디 문제 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. 1. 동물의 ID를 조회 -> SELECT animal_id 2. 이름이 없는 채로 들어옴 -> WHERE name IS NULL 3. ID가 오름차순 정렬 -> ORDER BY animal_id 정답 SELECT animal_id FROM animal_ins WHERE name IS NULL ORDER BY animal_id 조회 결과 2. 이름이 있는 동물의 아이디 문제 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 ..

코딩테스트 2022.08.11

[HackerRank SQL] Weather Observation Station 20

출력해야 할 것 the median of the Northern Latitudes (LAT_N) from STATION and round your answer to 4decimal places → STATION에서 LAT_N의 중위수를 추출하고, 소수점 넷째자리까지 출력 테이블 구조 풀이 SELECT ROUND(MEDIAN(LAT_N),4) FROM station ; 오라클에서는 간단하게 Median함수를 통해 중위값을 구할 수 있다. 반올림 또한 Round 함수를 이용하면 되는데, 사용할 때 원본이 되는 숫자와 표현하고자 하는 자리수를 파라미터로 넣어주면 된다. 두번째 파라미터의 디폴트 값은 0으로, 아무것도 넣지 않으면 소수점 첫번째 자리에서 반올림해서 표현하게 된다.

[HackerRank SQL] New Companies

각 회사의 계층 구조 출력해야 할 것 company_code, founder name, total number of lead managers, total number of senior managers, total number of managers, and total number of employees → 회사 코드, 창업자 이름, 리드매니저 수, 시니어 매니저 수, 매니저 수, 직원 수 정렬 company_code를 기준으로 asc 알아둘 것 테이블에는 중복 레코드가 포함될 수 있음 company_code는 문자열이기 때문에 C_1, C_2, C_10이 있다면 C_1, C_10, C_2 순서대로 출력되어야 함 Input Format Company company_code founder Lead_manage..

[프로그래머스 SQL] GROUP BY 문제 풀어보기

0. 기본 테이블 설명 1. 고양이와 개는 몇 마리 있을까 문제 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. 1. 몇 마리인지 count -> SELECT ANIMAL_TYPE, count(ANIMAL_ID) count 2. 여러 동물 중 고양이와 개를 필터링 -> WHERE ANIMAL_TYPE IN ('CAT','DOG') 3. 고양이인지 개인지에 따라서 나누어서 셈-> GROUP BY ANIMAL_TYPE 4. 고양이(Cat)를 개(Dog)보다 먼저 조회 -> ORDER BY ANIMAL_TYPE 정답 SELECT ANIMAL_TYPE, count(ANIMAL_ID) count FROM ANIMAL_INS ..

[프로그래머스 SQL] SUM,MAX,MIN 문제 풀어보기

0. 기본 테이블 설명 1. 최댓값 구하기 문제 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. 1. 가장 최근 시간 -> SELECT MAX(DATETIME) 정답 SELECT MAX(DATETIME) AS 시간 -- alias는 안해도 되지만, 예시에 시간으로 나와서 함 FROM ANIMAL_INS 조회 결과 2. 최솟값 구하기 문제 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. 1. 가장 먼저 들어온 시간 -> SELECT MIN(DATETIME) 정답 SELECT MIN(DATETIME) 시간 FROM ANIMAL_INS 조회 결과 3. 동물 수 구하기 문제 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작..