본문 바로가기
728x90
반응형

프로그래머스/Python163

[프로그래머스] 무인도 여행 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 무인도를 각각 찾아내어 머무를 수 있는 날을 계산한 뒤, 모든 무인도의 머무를 수 있는 날을 오름차순으로 정렬하는 문제이다. 각 연결되어 있는 무인도를 찾기 위해 bfs 알고리즘을 활용한다. 각 무인도의 시작 위치를 찾아내어 연결된 무인도를 탐색하고 해당 무인도의 머무를 수 있는 날을 계산한다. 지도의 모든 위치를 탐색하며 무인도를 모두 찾아내고 각 무인도마다 머무를 수 있는 날을 저장했다면 이를 오름차순으로 정렬한다. bfs 함수에서 deque 자료구조를 사용하기 .. 2023. 11. 11.
[프로그래머스] 메뉴 리뉴얼 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 단품 메뉴 2개 이상으로 구성된 가능한 코스요리를 구하는 문제이다. 코스요리를 구성하는 단품 메뉴의 개수에 따라 코스요리의 가능한 모든 조합의 결과를 구하고 해당 조합을 바탕으로 각 코스요리가 얼마나 주문되었는지 구한다. 손님 2명 이상이 주문한 메뉴 중 가장 많은 횟수로 주문된 코스요리 후보를 구한다. 각 코스요리의 개수에 따른 모든 코스요리 후보를 구했다면 해당 후보들을 오름차순으로 정렬한다. 조합의 결과를 combinations() 함수로 구하기 위해 해당 함수.. 2023. 11. 7.
[프로그래머스] 불량 사용자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 불량 아이디를 정규식으로 바꾸는 것과 가능한 제재 아이디의 모든 경우를 찾는 것이 관건이다. 불량 아이디를 정규식으로 바꾸면 re.match() 함수를 사용해 쉽게 사용자 아이디가 불량 아이디인지 판별할 수 있다. 불량 아이디에서 * 문자가 특정 1개의 문자를 의미하므로 정규식의 . 문자로 바꾸어 줄 바꿈 문자를 제외한 모든 한 문자와 매치하는지 확인할 수 있다. 또한 사용자 아이디에서 불량 아이디의 개수를 뽑아 나열하는 모든 경우를 permuations() 함수로 .. 2023. 11. 4.
[프로그래머스] 스티커 모으기(2) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 스티커에 적힌 숫자의 합이 크도록 스티커를 모으는 문제이다. 한 스티커를 떼면 양옆의 스티커를 뗄 수 없으므로 스티커를 뗄 수 있는 방법은 때고 안 떼는 방법(OX)과 안 때고 떼는 방법(XO)이 있다. 두 경우를 각각 DP 알고리즘을 활용하여 해결한다. DP 알고리즘을 사용하는 이유는 스티커를 하나씩 땔 때 이전에 때었던 스티커의 위치와 값에 영향을 받기 때문이다. 스티커를 떼면 양쪽 스티커를 뗄 수 없기에 현재 스티커를 뗄 지에 대한 위치 영향을 받는 것이고땐 스.. 2023. 11. 1.
[프로그래머스] 124 나라의 숫자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 10진법을 124로 구성된 3개의 수로 변환하는 문제이다. 3개의 수를 가지고 바꾸는 것은 쉽게 3진법이라고 할 수 있다. 3진법은 보통 012로 구성되어 있지만 위 문제는 124를 가지고 수를 변환해야 한다. 그냥 3진법으로 바꾸려면 3으로 나눈 나머지를 저장하고 몫으로 수를 새롭게 바꾸어 0이 될 때까지 반복하면 된다. 하지만 해당 문제에서 수가 3으로 나누어 떨어지는 수이면 수를 3으로 나눈 몫이 아니라 몫에서 1을 빼준 값으로 바꿔야 한다. 124로 변환한 결.. 2023. 10. 30.
[프로그래머스] 연속된 부분 수열의 합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 합을 만족시키는 부분 수열을 모두 구하고 부분 수열 중 가장 길이가 짧은 부분 수열, 길이가 동일하다면 가장 앞쪽 부분 수열을 찾는 문제이다. 배열에서 원소를 하나씩 추가시키며 합을 확인한다. 합이 아직 작을 경우 뒤 원소를 하나 추가시키고 클 경우 앞 원소를 하나 줄이며 부분 수열을 지정한다. 만약 합이 일치할 경우 해당 부분 수열의 시작 인덱스와 끝 인덱스를 저장하고 앞 원소를 하나 줄인다. 가장 길이가 짧은 부분 수열을 찾아야 하므로 두 인덱스 사이의 차가 작은.. 2023. 10. 28.
[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 두 큐의 원소를 제거하고 추가하는 작업을 반복하면서 두 큐의 합이 동일해지도록 만드는 문제이다. 큐의 구조에 따라 제일 앞 원소를 빼서 제일 뒤에 추가한다. 처음에 두 큐의 원소 개수는 동일하다. 하여 두 큐가 작업을 수행하다가 작업을 처음 큐의 원소 개수에 4배만큼 수행하게 되면 처음 큐로 돌아오게 된다. 따라서 작업 횟수는 처음 큐의 원소 개수에 4배보다 작아야 하며 이와 같거나 커질 경우에는 절대로 각 큐의 원소 합을 같게 만들 수 없는 경우인 것이다. 또한 매.. 2023. 10. 26.
[프로그래머스] 큰 수 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 숫자 문자열에서 특정 숫자를 제거했을 때 가장 큰 수를 만드는 문제이다. 숫자의 위치를 바꿀 수는 없으므로 앞 숫자가 커야 한다. 최종 큰 수를 저장할 리스트를 만들고 숫자 문자열에서 숫자를 하나씩 불러오며 이전에 있는 값보다 크면 바로 이전 값을 제거하고 새로 불러온 숫자를 추가한다. 이때 제거할 문자가 더 이상 없거나 리스트의 원소 개수가 최종 출력할 자리 수와 동일하면 종료한다. 최종 큰 숫자를 저장할 리스트를 생성한다. stack = list() 입력받은 숫자.. 2023. 10. 24.
[프로그래머스] 삼각 달팽이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 달팽이가 채우기를 하는 변과 원소의 위치에 관한 규칙을 찾으면 된다. 달팽이가 이동하면서 해당 변에 채워야 할 원소의 개수를 저장하고 이를 하나씩 불러오면 값을 채운다. 모든 원소를 1로 지정하고 이전 값을 더하며 값을 바꾼다. 먼저 내려가는 변은 채워야 할 열 중 제일 왼쪽을 내려가면서 채우면 된다. (행 위치 증가, 열 위치 고정) 다음으로 옆으로 가는 변은 해당 행을 그대로 채우면 된다. (행 위치 고정, 열 위치 증가) 마지막으로 올라가는 변은 채워야 할 열 .. 2023. 10. 22.
[프로그래머스] 베스트앨범 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 노래를 기준에 따라 정렬하고 이를 바탕으로 장르별 최대 2곡까지 노래의 고유번호를 저장하는 문제이다. 우선 고유번호는 노래의 전체 재생 수가 많은 장르가 우선적으로 저장된다. 장르 내에서는 각 노래의 재생 수가 많은 노래부터 저장된다. 각 노래의 재생 수가 동일하면 고유번호가 낮은 것부터 저장된다. 이를 만족하기 위해 고유번호를 낮은 번호부터 불러와 딕셔너리에 각 장르별로 분류하고, 전체 재생 횟수도 저장한다. 이후 저장 기준에 따라 딕셔너리들을 정렬하고 고유번호를 .. 2023. 10. 20.
728x90
반응형