본문 바로가기
반응형

Algorithm/프로그래머스57

[프로그래머스] 파이썬 문제풀이 - 가장 먼 노드 https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. 그래프 문제에서는 먼저 간선을 탐색하며 리스트형태로 저장해준다 2. 양방향일때는 양쪽다 넣어주어야한다 3. from collections import deque def solution(n, edge): answer = 0 q=deque([1]) ch=[[] for _ in range(n+1)] dis=[-1]*(n+1) dis[1]=0 for e in edge: ch[e[0]].ap.. 2023. 5. 19.
[프로그래머스] 파이썬 문제풀이 - 피로도 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 1. dfs나 bfs를 통한 탐색으로 풀수도 있겠지만 배열의 순서에 따라서도 결과가 다르기 때문에 순열을 사용했다 2. 순열을 사용해서 던전을 들어가는 모든 경우의 수를 뽑았다 3. 모든 경우의 수를 탐색하여 들어갈수있으면 +1을 하고 최대 던전 수 보다 크다면 교체했다 from itertools import permutations def solution(k, dungeons): answ.. 2023. 5. 19.
[프로그래머스] 파이썬 문제풀이 - 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. 전에 numpy를 다뤄본적이 있어 numpy 라이브러리를 사용했다 2. numpy에는 행렬을 다루는 기능이 있어 편리하다 3. 우리가 생각하는 곱은 행렬에서 @이다. *은 원소별로 곱하기다 import numpy as np def solution(arr1, arr2): answer = [] arr_1 = np.array(arr1) arr_2 = np.array(arr2) arr_ne.. 2023. 5. 16.
[프로그래머스] 파이썬 문제풀이 - [카카오 인턴] 보석 쇼핑 https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. 보석 종류 개수부터 gems의 길이까지 늘려가며 모든 경우의 수를 구한다 2. 모든 보석을 갖고있고 구간이 짧은 곳을 찾는다 def solution(gems): jw=list(set(gems)) a,b=100000,200001 for i in range(len(jw),len(gems)+1): for j in range(len(gems)-i+1): tmp=gems[j:j+i] tmp=.. 2023. 5. 14.
[프로그래머스] 파이썬 문제풀이 - 불량 사용자 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. 정규표현식을 사용하기위해 *을 .로 바꿔준다. 정규표현식에서 . 은 아무 문자 상관없이 탐지한다는 뜻이다 2. banned_id에서 단어별로 user_id에서 패턴이 일치하는 단어를 삽입한다 입출력 예1 [('fradi', 'frodo'), ('abc123',)] 3. 위의 리스트에서 단어를 하나씩 고른다. 중복되면 안됨 import re def solution(user_id, ba.. 2023. 5. 14.
[프로그래머스] SQL 문제풀이 - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 .. 2023. 5. 14.
[프로그래머스] MYSQL 문제풀이 - 입양 시각 구하기(1) https://school.programmers.co.kr/learn/courses/30/lessons/59412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 첫 풀이 1. DATETIME에서 시간을 추출하여 GROUP BY 한다 2. 추출한 시간을 이용하여 9시에서 19시 사이를 구한다 SELECT CONVERT(substring(DATETIME,12,2),SIGNED INTEGER) as hou.. 2023. 5. 13.
[프로그래머스] 파이썬 문제풀이 - 점프와 순간 이동 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. 편한 탐색을 위해 배열을 한 번 더 붙여준다 2. 뽑을 길이를 제어해줄 for문을 만든다 ex)길이 1인 부분수열만들지, 2인 부분수열만들지 3. 수열을 추출할 인덱스를 시작할 for문을 만든다 ex) 길이 2인 부분수열 만들 때 [0:2] 할지 [1:3]할지 def solution(elements): s1 = set() n=len(elements) elements=elements.. 2023. 5. 13.
[프로그래머스] 파이썬 문제풀이 - 점프와 순간 이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. n의 범위가 상당히 크므로 규칙이 있다고 생각했다 2. 온거리만큼 순간이동하는게 k칸 점프보다 무조건 우선순위가 되야한다 3. 1부터 올라가기보다 n에서 내려가는 방법이 효울적이라고 생각했다 4. n부터 2로 나누며 내려온다. 나눠서 홀수가 되면 1을 빼서 짝수를 만들어준다 5. 1을 뺐을때는 에너지를 사용했으므로 답에 1을더해준다 6. 1이 될때까지 반복한다 def solution.. 2023. 5. 10.
728x90