목록Development/Algorithm & Coding Test (189)
컴공생의 다이어리
백준 2501번 : 약수 구하기 (문제 바로가기) 내 코드 N, K = map(int, input().split()) result = 0 for i in range(1, N + 1): if N % i == 0: K -= 1 if K == 0: result = i break print(result)
[프로그래머스] 소수 찾기 - 파이썬(Python) import itertools def is_prime(num):# 소수 판별 if num < 2: return False for n in range(2, num): if num % n == 0: return False return True def solution(numbers): prime_num_candidate = [] for i in range(len(numbers)): prime_num_candidate.extend(map("".join, itertools.permutations(numbers, i + 1))) prime_num_candidate = set(map(int, prime_num_candidate)) answer = 0 for num ..
[프로그래머스] 모의고사 - 파이썬(Python) def solution(answers): s1 = [1, 2, 3, 4, 5] s2 = [2, 1, 2, 3, 2, 4, 2, 5] s3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] score = [0, 0, 0] result = [] for idx, ans in enumerate(answers): if s1[idx % 5] == ans: score[0] += 1 if s2[idx % 8] == ans: score[1] += 1 if s3[idx % 10] == ans: score[2] += 1 for idx, s in enumerate(score): if s == max(score): result.append(idx + 1) return ..
백준 2798번 : 블랙잭 (문제 바로가기) 내 코드 import itertools N, M = map(int, input().split()) card_num = list(map(int, input().split())) # M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합 combi_sum = [sum(combi) for combi in itertools.combinations(card_num, 3) if sum(combi)
선형 탐색(Linear Search) 선형 탐색은 일렬로 된 자료를 왼쪽부터 오른쪽으로 차례대로 탐색하는 알고리즘이다. 순차 탐색(Sequential Search)이라고도 한다. 파이썬 코드 def linear_search(arr, search): # for문 사용 for i in range(len(arr)): if arr[i] == search: return True return False linear_search([3, 110, 8, 13, 2], 5) # False 반환 linear_search([3, 110, 8, 13, 2], 13) # True 반환 혹은 def linear_search(arr, search): # while문 사용 i = 0 while i < len(arr): if arr[i..
[프로그래머스] 입양 시각 구하기(2) - MySQL SET @HOUR := -1; SELECT (@HOUR := @HOUR +1) AS HOUR, (SELECT COUNT(HOUR(DATETIME)) FROM ANIMAL_OUTS WHERE HOUR(DATETIME)=@HOUR) AS COUNT FROM ANIMAL_OUTS WHERE @HOUR < 23 ORDER BY HOUR; https://programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYP..
[프로그래머스] 입양 시각 구하기(1) - MySQL GROUP BY의 HAVING 활용 SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >=9 AND HOUR =9 AND HOUR(DATETIME)
[프로그래머스] 동명 동물 수 찾기 - MySQL SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME; https://programmers.co.kr/learn/courses/30/lessons/59041 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr
[프로그래머스] 고양이와 개는 몇 마리 있을까 - MySQL SELECT ANIMAL_TYPE, COUNT(*) as count FROM ANIMAL_INS WHERE ANIMAL_TYPE IN ('Cat', 'Dog') GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; https://programmers.co.kr/learn/courses/30/lessons/59040 코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTA..
이진 탐색(Binary Search) 이진 탐색은 정렬된 리스트에 적용할 수 있는 간단한 고속 탐색 기법이며 이분 탐색이라고도 불린다. 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다. 사람들이 숫자를 맞춰가는 업다운 게임과 같은 방식이다. 참고 : 업다운 게임 - 무한도전 니가 가라 하와이편 탐색 과정 이진 탐색은 데이터가 정렬되어있는 상태에서 진행된다. 시작점과 끝점 사이에 중간점을 정함 (만일, 중간점이 실수라면 소수점 이하를 버림) 중간점에 해당하는 값과 찾고자 하는 값을 비교 찾고자 하는 값이 중간점에 해당하는 값보다 작다면 중간점을 기준으로 왼쪽 부분을, 찾고자 하는 값이 중간점에 해당하는 값보다 크다면 중간점을 기준으로 오른쪽 부분에 해당하는 데이터 범위를 가..