목록programmers (70)
컴공생의 다이어리
[프로그래머스] 위장 - 파이썬(Python) from collections import defaultdict def solution(clothes): d = defaultdict(int) for n, t in clothes: d[t] += 1 answer = 1 for i in d.values(): answer *= (i + 1) return answer - 1 특정 종류의 옷을 안입는 경우를 +1로 추가해주고 난 뒤, 맨 마지막에 모두 안입은 경우를 빼줌 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr
[프로그래머스] 전화번호 목록 - 파이썬(Python) def solution(phone_book): phone_book.sort() for p1, p2 in zip(phone_book, phone_book[1:]): if p2.startswith(p1): return False return True https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr
[프로그래머스] 완주하지 못한 선수 - 파이썬(Python) import collections def solution(participant, completion): answer = collections.Counter(participant) - collections.Counter(completion) return list(answer.keys())[0] https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers...
[프로그래머스] 카펫 - 파이썬(Python) def solution(brown, yellow): size = brown + yellow for i in range(3, brown): if size % i == 0: j = size // i if (i - 2) * (j - 2) == yellow: return sorted([i, j], reverse=True) 혹은 def solution(brown, yellow): # 둘레 길이 활용 for i in range(1, int(yellow ** (1 / 2)) + 1): if yellow % i == 0: if 2 * (i + yellow // i) == brown - 4: return [yellow // i + 2, i + 2] 아래는 근의 공식을 활용한..
[프로그래머스] 소수 찾기 - 파이썬(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 ..
[프로그래머스] 입양 시각 구하기(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..