코테
-
코딩테스트 연습> 그래프 > 순위ALGORITHM/Programmers 2021. 3. 9. 18:46
코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 문제설명: results 배열 안에 A,B 두 선수가 리스트로 담겨있고, A>B 앞에있는 숫자(A)가 뒤에오는 숫자(B)를 이겼다는 의미이다. 예제로 나와있는 results의 경우 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 이므로, 4 > 3 4 > 2 3 > 2 1 > 2 2> 5 이고 이를 다시 정리해본다면 4 > 3 > 2 4 > 2 > 5 1 > 2 의 구조로 살펴볼 수 있다. 즉 win과 lose 딕셔너리를 생성한 다음 아래와 같은 구조로 값을 저장한다: 1. win에는 나(Key): 나에게 진사람들(Value) 2. lose에는..
-
코딩테스트 연습> 2019 카카오 개발자 겨울 인턴십> 크레인 인형뽑기 게임ALGORITHM/Programmers 2020. 10. 24. 10:04
코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제설명: 인형뽑기 통(?)이 board 배열로 주어지고, 뽑기 기계가 움직이는 방향을 담은 moves 배열이 주어진다. moves 방향에 따라 기계가 이동하면서 인형들을 뽑아 임시 바구니에 차곡차곡 담는다. 이때, 같은 모양의 인형이 2개가 만나면, 터지면서 사라진다. 이 때, 사라지는 인형들의 개수를 모두 더해 최종 ans로 return 하면 된다. [1차 시도] def solution(board, moves): ans = 0 basket = [] for i in moves: i-=1..
-
코딩테스트 연습> SELECT> 아픈 동물 찾기SQL/Programmers 2020. 9. 30. 23:45
코딩테스트 연습 - 아픈 동물 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제설명: 'ANIMAL_INS' 테이블의 동물 아이디와 이름 중 아픈 동물을 찾아 조회해야 하므로 WHERE절을 사용해 'Sick'한 동물들을 선택해야 한다. 마지막으로 ID 순(ORDER BY)으로 정렬해서 출력하면된다. [1차 시도] SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION='Si..
-
코딩테스트 연습> JOIN> 없어진 기록 찾기SQL/Programmers 2020. 9. 28. 22:44
코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제설명: 'ANIMAL_INS' 테이블과 'ANIMAL_OUTS' 테이블이 주어지고 두 테이블은 ANIMAL_ID를 공유한다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물을 조회해야 하므로 ANIMAL_OUTS에는 있지만, ANIMAL_INS에는 없는 동물의 ID와 NAME을 조회하면 된다. [1차 시도] SELECT O.ANIMAL_..
-
그리디 알고리즘> 1931. 회의실배정ALGORITHM/BAEKJOON 2020. 9. 23. 23:38
1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제설명: N개 회의가 주어지고 각각의 시작시간과 종료시간이 주어진다. 한 개의 회의실로 최대한 많은 회의를 할 수 있도록, 회의시간이 겹치지 않게 배정하는 방법을 생각해야 한다. [1차 시도] N = int(input()) timetable = [list(map(int,input().split())) for _ in range(N)] timetable.sort() ans = 1 minV = 2**31 for i in range(len(timetable)): if timetable[i][1] < minV: minV = timetable[i][1] else: if timetable..
-
백트래킹> 15649. N과 M (1)ALGORITHM/BAEKJOON 2020. 9. 21. 19:24
15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제설명: 숫자 N과 M이 주어지고, 1부터 N까지의 숫자를 활용하여 M개 길이의 수열을 만들어 출력하면 된다. [1차 시도] def find(cur,cnt): #(2) global N,M #(3) if cnt == M: print(' '.join(cur)) return else: #(4) visited[int(cur[-1])] = 1 for i in range(1, N + 1): #(5) if not visited[i]: visited[i] = 1 #(6) f..
-
브루트 포스> 2231. 분해합ALGORITHM/BAEKJOON 2020. 9. 18. 08:34
2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 문제설명: 숫자 N이 주어지고, 각 자리 수와 해당 값의 합으로 이 N을 만들 수 있는 숫자들 중 가장 작은 숫자를 찾는 문제이다. 만약 이처럼 만들 수 없다면, 0을 출력해야 한다. [1차 시도] N = int(input()) minV = 1000000000 check = N while check>N//2: sumup = 0 num = check while num>0: sumup+=num%10 num //=10 if check+su..
-
그리디 알고리즘> 11047. 동전 0ALGORITHM/BAEKJOON 2020. 9. 17. 09:40
11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제설명: N개 종류의 동전이 주어지고, N개의 종류별 동전들을 적절히 사용해 그 합을 K로 만드는 동전의 최소 개수를 구하는 문제이다. [1차 시도] N, K = map(int,input().split()) coin = [int(input()) for x in range(N)] ans = 0 coin_sum = 0 originK = K for i in range(N-1,-1,-1): if coin[i]