반응형

Algorithm 93

[프로그래머스/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] 럭키 스트레이트

https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net # 입력받는 부분 n = str(input()) # 왼쪽과 오른쪽 나누기 left = n[:len(n)//2] right = n[len(n)//2:] l_sum = 0 # 왼쪽의 각 자릿수 합 r_sum = 0 # 오른쪽의 각 자릿수 합 # 왼쪽과 오른쪽의 합 구하기 for i in range(len(left)): l_sum += int(left[i]) r_sum += int(right[i]) # 결과 출력 if l_sum == r_sum: pri..

Algorithm/백준 2021.05.14

[프로그래머스/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] 카드 정렬하기

www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net import heapq # 입력받는 부분 n = int(input()) cards = [] for i in range(n): heapq.heappush(cards, int(input())) answer = 0 # 최소 비교 횟수 # 최소 비교 횟수 계산 while len(cards) != 1: first = heapq.heappop(cards) second = heapq.heappop(cards)..

Algorithm/백준 2021.05.08

[프로그래머스/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] 안테나

www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net # 입력받는 부분 n = int(input()) house = list(map(int, input().split())) # 정렬 house.sort() # 안테나를 설치할 집 출력 print(house[int((n-1)/2)]) # print(house[(n-1)//2]) 처음에는 for문을 사용하여 배열을 돌면서 각 집에서 다른 집들 간의 거리를 구하고 그 거리들 중에서 최소값을 구해야한다고 생각했습니다. 이 방법으로 코드를 짜다보..

Algorithm/백준 2021.05.07

[백준/Python] 국영수

www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net # 입력받는 부분 n = int(input()) students = [] for i in range(n): students.append(input().split()) # 문제에 제시된 조건대로 정렬 students.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0])) # 정렬 후 결과 출력 for student in student..

Algorithm/백준 2021.05.07

[프로그래머스/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: []) # 장르별 각 곡의 고유 번호와 재생 횟수가 저장된 딕셔너리 # 위에 ..

반응형