문제풀기/프로그래머스(26)
-
프로그래머스 : 최솟값 만들기
https://programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 하나의 배열은 오름차순으로, 또 다른 배열은 내림차순으로 정렬 후, 같은 index에 있는 숫자들끼리 곱한게 가장 작다. 즉, 클수록 작은 수랑 곱하면 된다. def solution(A,B): answer = 0 A.sort(reverse=True) B.sort() for i in range(len(A)): answer += A[i]*B[i..
2021.11.16 -
프로그래머스 : 주식가격
https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 처음에 이중 for문으로 될까? 했는데 효율성까지 통과가 된다. def solution(prices): answer = [] for i in range(len(prices)): result = 0 for j in range(i+1,len(prices)): result += 1 if prices[j]
2021.11.16 -
프로그래머스 : 전력망을 둘로 나누기
https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 전선을 하나씩 끊어보고, 한 쪽만 BFS로 탐색하며 한 쪽 전력망에 속한 송전탑의 개수를 세어보고 남은 송전탑들과 얼마나 차이나는지 비교하면 된다. from collections import deque def bfs(start,visitied,graph): queue = deque([start]) result = 1 visitied[start] = True whi..
2021.11.03 -
프로그래머스 : 올바른 괄호
https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 전형적인 스택/큐 문제이다. "("가 나오면 스택에 넣고, ")"가 나오면 스택에서 "("를 뺀다. 이 때, 스택이 비어있거나, 마지막에 스택이 비어있지 않으면 올바른 괄호가 아니다. from collections import deque def solution(s): answer = True queue = deque(..
2021.10.30 -
프로그래머스 : 구명보트
https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 투 포인터로 풀었다. (이게 투 포인터 맞나...?) 어차피 최대 2명씩 밖에 탈 수 없기 때문에, people을 sorting 한 후, 가장 왼쪽, 가장 오른쪽부터 하나씩 오면서 더해준다. 이 때, people[left] + people[right] 가 limit을 넘으면 right만 이동하고 answer에 1을 더해준다. 넘지 않으..
2021.10.29 -
프로그래머스 : 2018 KAKAO BLIND RECRUITMENT [1차] 프렌즈4블록
https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 최근에 본 코딩테스트에서 거의 동일한 문제를 푼 적이 있다. 근데 어딘지 기억이 안남..... 이런 문제의 경우 여러 함수로 기능을 나눠서 구현하는 것이 디버깅하기도 편하고, 코드 고치기도 편하다. 아직 함수 이름을 어떻게 지어야 좋은지를 잘 모르겠지만... check_erase : 지울게 있는지 확인 후, 지울 게 있다면 2*2 부분의 ..
2021.10.29