목록2024/12 (153)
susinlee 님의 블로그
[문제]https://school.programmers.co.kr/learn/courses/30/lessons/172928 [풀이]1. 방향 딕셔너리를 생성해줌2. 시작 지점 좌표를 구해주고3. 명령을 하나씩 꺼내서 방향과 거리로 분리하고 탐색하는 과정 반복4. 탐색할 때 명령을 수행할 수 있는지 여부를 뜻하는 flag 변수 설정5. 수행할 수 있다면 최종적으로 이동할 위치인 좌표로 수정def solution(park, routes): direction = {'N':(-1, 0), 'E':(0, 1), 'S':(1, 0), 'W':(0, -1)} n, m = len(park), len(park[0]) cx, cy = 0, 0 for i in range(n): for j ..
[문제]https://leetcode.com/problems/immediate-food-delivery-ii/description/ [풀이]1. 각 고객별로 첫주문을 가져오고, 해당 주문과 희망 배송 날짜가 같은 걸 찾고 더한 뒤 전체 개수로 나눠줌 Pandasimport pandas as pddef immediate_food_delivery(delivery: pd.DataFrame) -> pd.DataFrame: delivery = delivery.groupby('customer_id').min() return pd.DataFrame({'immediate_percentage' : [round((delivery['order_date'] == delivery['customer_pref_deliv..
[문제]https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이]1. 효율성을 고려해야 하는 문제이므로 리스트에 인덱스로 접근하여 값을 변경해주어야 한다.2. 딕셔너리를 통해 인덱스를 저장하고, 저장된 값을 수정해주면서 리스트에 인덱스로 접근해 순위를 바꿔준다. from collections import defaultdictdef solution(players, callings): rank = defaultdict(int) for i, player in enumerate(playe..
[문제] https://leetcode.com/problems/monthly-transactions-i/description/ [풀이]1. state 컬럼이 'approved' 인 행에만 집계함수를 적용할 수 있도록 np.where 또는 apply 함수를 통해 새로운 컬럼을 생성2. month 컬럼을 요구된 날짜포맷으로 변경3. month 컬럼과 country 컬럼으로 groupby 를 진행하는데 기준 컬럼이 null값 이어도 그룹화에서 제외하지 않도록dropna=False 설정4. agg 함수를 적용하고 reset_index 함수로 마무리 Pandasdef monthly_transactions(transactions: pd.DataFrame) -> pd.DataFrame: transactions..
[문제]https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(board): direction = [(-1, 0), (0, 1), (1, 0), (0, -1)] n, m = len(board), len(board[0]) oil_pools = [] # 석유 웅덩이 (크기, y범위) def DFS(x, y, visited): nonlocal count nonlocal rangeY stack = [(x, y)] ..
프로젝트에 있어서 가장 중요한 것은 협업이다. 어떠한 처리나 지표를 설정할 때는 꼭 팀원들과 아이디어를 공유해보자. 코딩하는 것보다도 논의하는 것이 장기적으로 봤을 때 더더더 중요하다.
[문제]https://leetcode.com/problems/queries-quality-and-percentage/description/ [풀이]1. rating 컬럼과 position 컬럼을 나눈 새로운 컬럼을 생성한다. 2. rating 컬럼이 3 미만인 조건을 통해 불리언 배열을 생성하고 이에 100을 곱해주는 새로운 컬럼을 생성한다. (비율이므로 미리 계산)3. query_name으로 그룹화한 뒤 두 컬럼을 평균해준다. 반올림도 진행해주는데 아마 틀렸다고 나올 것이다.4. 이는 판다스의 반올림에는 다른 규칙이 있기 때문인데, 예를들어 소수점 둘째짜리까지 반올림하는 경우 반올림할 숫자가 0.125라면 0.12로 반올림한다. 이는 편향을 줄이기 위한 방법인데 반올림할 값이 딱 중간인 5라면 가까운..