반응형

Algorithm/프로그래머스 42

[프로그래머스/Python] 카펫 - Level2

https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr def solution(brown, yellow): width, height = 0, 0 for height in range(3, int((brown+4)/2)): width = ((brown + 4) / 2) - height if width < height: break; if yellow == (width - 2) * (height - 2): break; ..

[프로그래머스/Python] 소수 찾기 - Level2

https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr import itertools import math # 소수인지 확인하는 함수 def sosu(n): if n

[프로그래머스/Python] 모의고사 - Level1

https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr def solution(answers): person1 = [1,2,3,4,5] person2 = [2,1,2,3,2,4,2,5] person3 = [3,3,1,1,2,2,4,4,5,5] score = [0,0,0] answer = [] # 맞은 개수 계산 for i in range(len(answers)): if answers[i..

[프로그래머스/Python] 문자열 압축

https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): answer = len(s) # 최소 길이 # 자르는 단위 늘려가며 최소 길이 계산 for slice in range(1, len(s)//2+1): result = "" # 압축된 문자열 count = 1 # 반복되는 횟수 compare = s[0:slice] # 자른 문자열 # 압축된 문자열 구하기 for i in rang..

[프로그래머스/Python] H-Index - Level2

programmers.co.kr/learn/courses/30/lessons/42747?language=python3 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr def solution(citations): length = len(citations) # 배열의 길이 citations.sort() for i in range(length): if citations[i] >= length - i: return length - i # 논문이 인용된 횟수 >= 인용된 논문의 개수 r..

[프로그래머스/Python] 가장 큰 수 - Level2

programmers.co.kr/learn/courses/30/lessons/42746?language=python3 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr import functools def compare(a,b): sum1, sum2 = int(a+b), int(b+a) if sum1 > sum2: return 1 elif sum1 == sum2: return 0 elif sum1 < sum2: return -1 def soluti..

[프로그래머스/Python] K번째수 - Level1

programmers.co.kr/learn/courses/30/lessons/42748?language=python3 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] for command in commands: result = array[command[0]-1:command[1]] # i번째부터 j번째 숫자까지 자르기 result.sort() # 자른 배열 정렬하기 answer.append(result[command[2]-1]) # k번째 수 구하기 return answer 먼저 입력 받은 배열에서 ..

[프로그래머스/Python] 실패율

programmers.co.kr/learn/courses/30/lessons/42889?language=python3 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr def solution(N, stages): answer = [] result = [] length = len(stages) for i in range(1,N+1): not_finish = stages.count(i) fail = not_finish / length result.append((i, fail)) length -= not_finish..

[프로그래머스/Python] 베스트앨범 - Level3

programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr from collections import defaultdict def solution(genres, plays): answer = [] genre_count = defaultdict(lambda: 0) # 장르별 전체 재생 횟수가 저장된 딕셔너리 music = defaultdict(lambda: []) # 장르별 각 곡의 고유 번호와 재생 횟수가 저장된 딕셔너리 # 위에 ..

[프로그래머스/Python] 위장 - Level2

programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr def solution(clothes): answer = 1 cloth = {} # 딕셔너리에 옷 종류별 옷 개수 저장 for i in clothes: if i[1] in cloth: cloth[i[1]] += 1 else: cloth[i[1]] = 1 # 의상의 조합 개수 계산 for value in cloth.values(): answer *= (value+1) return answer-1 먼저 옷 종류별로 옷이 몇 개가 있는지 파악하기 위해서 딕셔너리를 사용하여 종류별 옷 개수를 저장합니다. cloth에 이미 해당 옷 종류(key)가 있다면 값(value)..

반응형