본문 바로가기

분류 전체보기

(67)
[python] 22. 실패율(feat. dictionary 정렬하기) 문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. - 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매..
[python] 21. 다트 게임(feat. 정규표현식) ★ 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 1. 다트 게임은 총 3번의 기회로 구성된다. 2. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 3. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수^1 , 점수^2 , 점수^3 )으로 계산된다. 4. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 ..
[python] 20. 예산 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 제한사항 - d는 부서별로 신청..
[python] 19. x만큼 간격이 있는 n개의 숫자 문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 - x는 -10000000 이상, 10000000 이하인 정수입니다. - n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2, 4, 6, 8, 10] 4 3 [4, 8, 12] -4 2 [-4, -8] 나의 코드 def solution(x, n): answer = [] for i in range(1, n+1): answer.append(x*i) return answer 다른 풀이 def solution(x, n): return [i*x+x for..
[경제 이슈] 1230-0106 이진우의 손에 잡히는 경제 정리 2020년 12월 30일 코로나19 다음에 나올 핵심 리스크는? 내년에 가장 중요한 것 같은 리스크는 미중갈등. 코로나19 사태로 인한 팬데믹이 안정화된다면, 그동안의 코로나19 발생 전개 과정에서 국가별 대처과정이 과연 정당했는지, 누구의 잘못인지, 세계 정치 경제적인 헤게모니가 빠르게 변화하는데 미중갈등이 본격적으로 심화될 것이다. 우리나라는 과거에도 미중문제가 취약한 모습을 보여줬기 때문에 걱정된다. 그래도 트럼프보단 민주당 바이든이 더 신사적이지 않을까? 경제적인 것이 아니라 정치학적으로 접근하면, '인간국가전쟁'(국가간 갈등이 어떻게 발생하는가를 분석한 고전)에 따르면, 1. 인간적인 차원-> 시진핑, 트럼프 개인적인 스타일. 2. 국제정치 차원-> 1등 국가는 2등의 부상을 항상 견제하고 압박..
[python] 18. 직사각형 별찍기 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 - n과 m은 각각 1000 이하인 자연수입니다. 예시 입력 5 3 출력 ***** ***** ***** 나의 코드 a, b = map(int, input().strip().split(' ')) for _ in range(b): print('*'*a) 다른 풀이 a, b = map(int, input().strip().split(' ')) answer = ('*'*a +'\n')*b print(answer) 오 for문을 돌리지 않아도 '\n'를 입력했다!
[python] 17. 3진법 뒤집기(feat. divmod 함수) 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 - n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 n result 45 7 125 229 입출력 예 설명 n (10진법) n (3진법) 앞뒤반전(3진법) 10진법으로 표현 45 1200 0021 7 나의 코드 def solution(n): answer = '' result = 0 while n >= 3: #n을 3으로 나눈 나머지를 num에 저장하고, 몫은 n에 다시 저장하는 while문을 수행한다. num = n % 3 n //= 3 answer += str(num) #answer에 붙여준다. w..
[python/탐욕법] 16. 체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..