반응형

python3 6

[Python][프로그래머스] level 3 - 보석쇼핑

문제 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는..

[Python][프로그래머스] level 1 - 실패율

문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 ..

[Python] 특정기준으로 배열 정렬하기 (key=lambda)

파이썬에서 배열을 정렬하기 위해서는 sorted() / sort() 함수나 reverse 를 사용하여 내림차순, 오름차순정렬을 할 수 있습니다. 하지만 내가 원하는 특별한 기준으로 배열을 정렬하고 싶을 때는 어떻게 해야할까요? 이때는 key=lambda 식을 사용하면 됩니다! 1. key 가 하나일 때 ex1) x를 기준으로 정렬하기 (일반 오름차순) arr = ['abc', 'bac', 'bca'] sorted(arr, key=lambda x : x) ex2) arr 에 속하는 각 원소들을 x 라고 생각했을 때, x[0]를 기준으로 정렬하기 arr = ['abc', 'bac', 'bca'] sorted(arr, key=lambda x : x[0]) 2. key 가 여러개 일 때 ex1) x[0]를 기준..

➰ Library/Python 2021.07.08

[Python][프로그래머스] level 1 - 문자열 내 마음대로 정렬하기

문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 strings n return ["sun", "bed"..

[Python][백준][11057] 오르막 수 (DP)

🍋 문제링크 https://www.acmicpc.net/problem/11057 11057번: 오르막 수 🍎 코드 제출 기록 (메모리 및 시간) 메모리 : 123172 KB 시간 : 120 ms 🍉 Code N = int(input()) dp = [[0 for _ in range(19)] for _ in range(1009)] dp[1] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] for i in range(2, N+1): for j in range(10): if j == 0: dp[i][j] = sum(dp[i-1]) else: dp[i][j] = dp[i][j-1] - dp[i-1][j-1] print(sum(dp[N])%10007) 🥝 메모 DP[][] 배열을 2차원으로 선언 DP[x..