반응형 전체 글103 [SQL] 프로그래머스 : 코딩테스트 연습 - 최댓값 구하기 1. 풀이 1) ORDER BY 이용 SELECT DATETIME AS '시간' FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1 2) MAX 이용 SELECT MAX(DATETIME) AS '시간' FROM ANIMAL_INS 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/59415 코딩테스트 연습 - 최댓값 구하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 progra.. 2021. 12. 15. [SQL] 프로그래머스 : 코딩 테스트 연습 - 상위 n개 레코드 [풀이] SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 - 상위 n개를 출력하는 방법을 몰라 검색하였다. - MySQL의 경우 LIMIT를 이용하여 출력 개수를 조절할 수 있는 것을 알았다. - LIMIT 1을 써서 상위 1개 동물 이름을 출력하였다. ** 오라클에서는 WHERE rownum 2021. 12. 14. [알고리즘] 탐색 알고리즘 - 이진탐색, 순차탐색 1. 분할 정복 알고리즘과 이진 탐색 1) 분할 정복 알고리즘(Divide and Conquer) - Divide : 문제를 하나 or 둘 이상으로 나눔 - Conquer : 나눠진 문제가 충분히 작고 해결이 가능하다면 해결하고, 그렇지 않으면 다시 나눔 2) 이진 탐색 - Divide : 리스트를 2개의 서브 리스트로 나눔 - Conquer - 검색할 숫자 > 중간값 : 뒷 부분의 서브 리스트에서 검색할 숫자를 찾음 - 검색할 숫자 < 중간값 : 앞 부분의 서브 리스트에서 검색할 숫자를 찾음 2. 이진 탐색 코드 def binary_search(data, search): if len(data) == 1 and search == data[0]: # 사이즈가 1일 때, 그 때 검색할 데이터 존재할 경우 r.. 2021. 12. 13. [백준] 1920번 : 수 찾기 유형 : 해시, 배열, 구현 [예제 입력] 5 4 1 5 2 3 5 1 3 7 9 5 [예제 출력] 1 1 0 0 1 핵심 아이디어 1. 특정 정수의 등장 여부만을 간단히 체크 2. dictionary 자료형을 해시처럼 사용 가능(python) 3. set 자료형을 이용하면 간단히 풀 수 있음 1. 내 풀이 - 시간 초과.. - 찾아보니 많은 사람들이 나처럼 틀리는 것 같다. (순차탐색 문제) 더보기 N = int(input()) list1 = list(map(int,input().split(' '))) M = int(input()) list2 = list(map(int,input().split(' '))) for i in range(M): num = list2[i] check = 0 for j in r.. 2021. 12. 13. [백준] 10930번 : SHA-256 유형 : 해시, 구현 [입력] Baekjoon [출력] 9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857 풀이 import hashlib data = input() data = data.encode() hash_object = hashlib.sha256() hash_object.update(data) hex_dig = hash_object.hexdigest() print(hex_dig) 2021. 12. 13. [자료구조] 해쉬 테이블 1. 해쉬 구조 - 해쉬 테이블 : 키에 데이터를 저장하는 데이터 구조 - 키를 이용해 데이터 처리 속도를 높일 수 있음 - 보통 배열로 미리 해쉬 테이블 크기만큼 생성 후에 사용(공간과 탐색 시간을 맞바꿈) → 공간을 늘려서 충돌로 인한 별도의 자료구조를 만들지 않도록 함 - 파이썬에는 해쉬를 별도 구현할 이유가 없기 때문에 딕셔너리 타입을 사용 2. 용어 정리 ① 해쉬(Hash) : 임의 값을 고정 길이로 변환 ② 해쉬 테이블(Hash Table) : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 ③ 해싱 함수(Hashing Function) : 키에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 ④ 해쉬 값(Hash Value) or 해쉬 주소(Hash Address) : 키를 .. 2021. 12. 13. [백준] 5397번 : 키로거 유형 : 스택, 구현, 그리디 [예제] 2 입력 : 오른쪽 스택에서 왼쪽 스택으로 원소 이동 ** 오른쪽 스택의 경우, 마지막 출력할 때 스택을 뒤집어서 출력해야 함! 강의에서 설명한 핵심 아이디어를 본 예시에 적용해서 해석(?)했다. 2. 풀이 밑에는 내 풀이(틀림)인데...다시 풀어봐야 한다.. 더보기 ## 백준 5397 L = int(input()) for _ in range(L): text = input() #text = [(i, idx) for idx,i in enumerate(text)] cursor = 0 # 커서 위치 temp = [] count = 0 for j in range(len(text)): if text[j] in ('','-'): k = j c1 = 0 c2 = 0 c3 = 0.. 2021. 12. 11. [백준] 1966번 : 프린터 큐 유형 : 스택, 그리디 [예시] 3 1 0 5 4 2 1 2 3 4 6 0 1 1 9 1 1 1 [출력] 1 2 5 예시를 통해 문제를 이해해보자. 테스트 케이스 개수가 3개인데 여기서 2번째, 3번째만 살펴보겠다. 1) 2번째 케이스 2) 3번째 케이스 풀이 test_case = int(input()) for _ in range(test_case): n, m = list(map(int, input().split(' '))) queue = list(map(int, input().split(' '))) queue = [(i,idx) for idx, i in enumerate(queue)] # (중요도, 인덱스) count = 0 while True: if queue[0][0] == max(queue, ke.. 2021. 12. 10. [백준] 11399번 : ATM 그리디 알고리즘을 생각하면 쉽게 풀린다. 즉, 매순간 최선을 선택해야 하므로 리스트를 오름차순하여 가장 적은 수가 앞으로 가야 한다. N = int(input()) _list = list(map(int,input().split(' '))) _list.sort() # 오름차순 _sum1 = 0 _sum2 = 0 for i in range(N): _sum1 = _sum1 + _list[i] _sum2 += _sum1 print(_sum2) ▷ 탐욕(그리디) 알고리즘 정리 https://leunco.tistory.com/50 [알고리즘] 탐욕(그리디) 알고리즘 1. 탐욕 알고리즘 : 최적의 해에 가까운 값을 구하기 위해 사용 → 매순간 최적이라고 생각되는 경우를 선택 2. 예시 1) 동전 - 지불해야 하는 값.. 2021. 12. 9. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음 반응형