일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 데이터분석
- collections
- 조합
- 프로그래머스
- sql
- 완전탐색
- coding test
- import re
- BFS
- lv4
- join
- 시간복잡도
- CodingTest
- Queue
- Stack
- level4
- python
- lambda
- 코딩테스트
- 코딩
- Level2
- programmers
- counter
- 연습문제
- 코테
- itertools
- coding
- time complexity
- mysql
- 파이썬
- Today
- Total
목록Algorithm/Python (86)
ror_coding
eval을 이용해서 연산 ! Question 수식에 연산자가 3개 주어졌으므로 가능한 연산자 우선순위 조합은 3! = 6가지이며, 그 중 + > - > * 로 연산자 우선순위를 정한다면 결괏값은 22,000원이 됩니다. 반면에 * > + > - 로 연산자 우선순위를 정한다면 수식의 결괏값은 -60,420 이지만, 규칙에 따라 우승 시 상금은 절댓값인 60,420원이 됩니다.참가자에게 주어진 연산 수식이 담긴 문자열 expression이 매개변수로 주어질 때, 우승 시 받을 수 있는 가장 큰 상금 금액을 return 하도록 solution 함수를 완성해주세요.[제한사항]expression은 길이가 3 이상 100 이하인 문자열입니다.expression은 공백문자, 괄호문자 없이 오로지 숫자와 3가지의 연산..
from functools import reduce (누적 함수 적용)partial (함수의 일부 인수 고정해서 새로운 함수 생성)lru_cache (함수의 실행 결과 캐싱하여 동일한 입력에 대해 빠르게 반환) reducefrom functools import reducefrom math import gcd# 리스트의 모든 값 곱하기nums = [1, 2, 3, 4]= reduce(lambda x, y: x * y, nums) # 24= reduce(gcd, nums) # 모든 원소의 최대공약수 구함. partialfrom functools import partial# 기본 인자를 고정한 함수 생성def power(base, exp): return base ** expsquare = partial(..
문제에서 요구한 풀이 방식을 따라서 풀자. Question "균형잡힌 괄호 문자열" p가 매개변수로 주어질 때, 주어진 알고리즘을 수행해 "올바른 괄호 문자열"로 변환한 결과를 return 하도록 solution 함수를 완성해 주세요.1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 3-1. 수행한 결과 문자열을 u에 이어 붙인 후 반환합니다. 4. 문자열 u가 "올바른 괄호 문자열"이 아니라면 아래 과정을 수행합니다..
특징 잘 파악해서 풀기 Question n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다.[1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 사람의 수 n과, 자연수 k가 주어질 때, 사람을 나열 하는 방법을 사전 순으로 나열 했을 때, k번째 방법을 return하는 solution 함수를 완성해주세요. Point k -= 1 : 1부터 시작하는 인덱스를 0으로 바꿔주기 위해 1을 빼줍니다. f = fact(len(p)-1) : 현재 남아 있는 숫자의 수가 m 이..
BFS 문제..!!! BFS 지금 3번째 틀리는 건데.. 조만간 복습으로 다시 풀어야겠다. Question 지도를 나타내는 문자열 배열 maps가 매개변수로 주어질 때, 각 섬에서 최대 며칠씩 머무를 수 있는지 배열에 오름차순으로 담아 return 하는 solution 함수를 완성해주세요. 만약 지낼 수 있는 무인도가 없다면 -1을 배열에 담아 return 해주세요. Code from collections import dequedef solution(maps): answer = [] directions = [(-1,0),(1,0),(0,-1),(0,1)] rows, cols = len(maps), len(maps[0]) grid = [list(row) for row in maps]..
datetime 을 이용하여 시간 차이 '분'을 구하는 방법과 요구하는 길이만큼 멜로디를 늘려 풀기 ! Question 네오는 자신이 기억한 멜로디를 가지고 방금그곡을 이용해 음악을 찾는다. 그런데 라디오 방송에서는 한 음악을 반복해서 재생할 때도 있어서 네오가 기억하고 있는 멜로디는 음악 끝부분과 처음 부분이 이어서 재생된 멜로디일 수도 있다. 반대로, 한 음악을 중간에 끊을 경우 원본 음악에는 네오가 기억한 멜로디가 들어있다 해도 그 곡이 네오가 들은 곡이 아닐 수도 있다. 그렇기 때문에 네오는 기억한 멜로디를 재생 시간과 제공된 악보를 직접 보면서 비교하려고 한다. 다음과 같은 가정을 할 때 네오가 찾으려는 음악의 제목을 구하여라.방금그곡 서비스에서는 음악 제목, 재생이 시작되고 끝난 시각, 악보를..
import datetimedatetime.date(2016,a,b).strftime('%a').upper() 요일 관련%a : 요일의 약자 (영어, 예: Mon, Tue)%A : 요일의 전체 이름 (영어, 예: Monday, Tuesday)%w : 요일의 숫자 (0 = 일요일, 1 = 월요일, ..., 6 = 토요일)날짜 관련%d : 날짜 (01부터 31까지의 2자리 숫자)%b : 월의 약자 (영어, 예: Jan, Feb)%B : 월의 전체 이름 (영어, 예: January, February)%m : 월 (01부터 12까지의 2자리 숫자)%y : 연도 (2자리, 예: 23 for 2023)%Y : 연도 (4자리, 예: 2023)%j : 해당 연도의 일수 (001부터 366까지)%U : 연도의 주차 (일..
BFS 문제. 바로 출구1, 출구2를 순서에 맞게 방문하는 문제. Question 1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 칸으로 이동하여 레버를 당긴 후 미로를 빠져나가는 문이 있는 칸으로 이동하면 됩니다. 이때 아직 레버를 당기지 않았더라도 출구가 있는 칸을 지나갈 수 있습니다. 미로에서 한 칸을 이동하는데 1초가 걸린다고 할 때, 최대한 빠르게 미로를 빠져나가는데 ..