본문 바로가기
728x90
반응형

프로그래머스/Python163

[프로그래머스] [1차] 캐시 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 리스트보다 연산 속도가 빠르고 popleft() 메서드를 사용할 수 있는 deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 먼저 도시 이름을 저장해 둘 deque을 생성한다. memory = deque() 도시 이름을 하나씩 추출하여 for i in cities 도시 이름 사이에 대소문자 구별이 없으므로 모두 소문자로 변환해 준다. i = i.lower() 만약 도시 이름이 앞에서 나온 적 있다면 if (i in.. 2023. 7. 19.
[프로그래머스] 행렬의 곱셈 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 먼저 모든 행렬의 값이 0인 결과 행렬을 생성한다. 행렬의 곱셈 결과는 앞 행렬의 행의 개수 for i in range(len(arr1)) 행별로 값을 저장할 리스트를 생성한다. li = [] 뒤 행렬의 열의 개수로 결과가 반환된다. for _ in range(len(arr2[0])): li.append(0) 행별로 열의 값을 저장한 리스트를 추가한다. answer.append(li) 행렬의 곱셈을 하기 위해선 3중 for문이 필요하다. 결과의 위치 원소에 대한 결과는 앞 행렬의.. 2023. 7. 19.
[프로그래머스] 폰켓몬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 폰켓몬의 종류를 저장할 변수를 생성하고 set()를 활용해 중복 없이 폰켓몬의 종류를 저장한다. s =set(nums) 만약 폰켓몬의 종류가 가져갈 수 있는 폰켓몬 수보다 많거나 같다면 if (len(s) >= len(nums) // 2) 최대 고를 수 있는 폰켓몬 종류의 수는 가져갈 수 있는 폰켓몬 수와 같다. answer = len(nums) // 2 반면에 폰켓몬의 종류가 가져갈 수 있는 폰켓몬 수보다 적다면 else 최대 고를 수 있는 폰켓몬 종류의 수는 폰켓몬의 종류의 .. 2023. 7. 18.
[프로그래머스] 명예의 전당(1) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 명예의 전당에 존재하는 점수를 저장할 리스트를 생성한다. hall = [] 점수를 하나씩 추출하여 for i in score 만약 명예의 전당에 올라갈 자리가 있으면 점수를 명예의 전당에 올린다. if (len(hall) min(hall)) 명예의 전당에서 가장 낮은 점수를 제거하고 hal.. 2023. 7. 18.
[프로그래머스] n^2 배열 자르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 풀이 애니메이션이 함정이다. 풀이 애니메이션처럼 배열의 값을 모두 구하여 해결하면 시간이 많이 걸리고 메모리도 많이 사용하게 된다. 하여 바로 정답 값만 저장할 수 있도록 해결해 보았다. left와 right 값을 매개변수로 입력받게 되는데, 이를 각 행과 열의 최대 개수인 n으로 나눈 몫과 나머지가 각 행과 열의 위치가 된다. 하여 이를 활용해 해당 2차원 배열에서 해당 위치의 값만 바로 정답 배열에 추가하는 방법으로 해결하였다. 행의 위치를 나타낼 변수를 생성하고.. 2023. 7. 16.
[프로그래머스] H-Index - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 논문의 인용 횟수를 담은 리스트를 오름차순으로 정렬한다. citations.sort() 만족하는 Index를 저장할 리스트를 생성한다. li = list() 인덱스는 0부터 논문의 인용 횟수의 최댓값까지 가능하므로 반복한다. for h in range(max(citations) + 1) 인덱스보다 많이 인용된 논문의 수를 저장할 변수를 생성하고 초기화한다. count = 0 논문의 인용 횟수를 하나씩 추출하여 for i in citations 만약 인용 횟수가 인덱스보다 크거나 .. 2023. 7. 16.
[프로그래머스] 연속 부분 수열 합의 개수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 부분 수열의 합을 저장할 리스트를 생성한다. li = list() 각 부분 수열의 경우는 길이가 1부터 부분 수열 원소 크기까지 반복한다. for k in range(len(elements)) 각 부분 수열의 시작을 나타내는 변수를 생성하고 초기화한다. i = 0 각 부분 수열의 끝을 나타내는 변수를 생성하고 각 경우별 길이만큼 떨어진 값을 저장한다. j = k + 1 각 길이별 경우는 모두 부분 수열 원소 크기만큼 그 합의 경우가 나오기 때문에 부분 수열 원소 크기만큼 연산을 .. 2023. 7. 16.
[프로그래머스] 2016년 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 달별 일 수를 리스트로 저장한다. 해당 년은 윤년이므로 2월이 29일까지 있다. month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 1월 1일이 금요일이므로 금요일부터 시작하여 목요일까지 요일을 리스트로 저장한다. day = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU'] 총 일 수를 저장할 변수를 생성하고 총 일 수를 더하여 저장한다. Sum = sum(month[: (a - 1)]).. 2023. 7. 16.
[프로그래머스] 괄호 회전하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 빠른 연산에 용이한 deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 괄호를 회전한 결과를 저장할 deque을 생성한다. queue = deque() 초기 괄호의 상태를 deque 자료구조로 추가한다. queue.append(deque(s)) 다음부터 괄호 길이 전까지 for _ in range(1, len(s)) 문자열을 deque 자료구조로 저장한다. s = deque(s) 문자열에서 가장 앞 괄호를 제거하고.. 2023. 7. 14.
[프로그래머스] 귤 고르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 크기별 개수를 저장할 딕셔너리를 생성한다. d = {} 입력받은 귤을 하나씩 추출한다. for i in tangerine 만약 이미 딕셔너리에 해당 크기가 존재하면 개수에 1을 더한다. if (i in d): d[i] += 1 반면에 해당 크기가 처음 나왔으면 개수를 1로 하여 추가한다. else: d[i] = 1 전체 귤의 개수를 크기별로 모두 세었다면 해당 딕셔너리를 개수(value)를 기준으로 내림차순 정렬한다. 개수가 많은 값부터 귤을 추가해야 최소한의 종류로 판매할 .. 2023. 7. 14.
728x90
반응형