목록알고리즘/프로그래머스 (35)
DecordRay
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 사실 문제 자체는 스택/큐로 분류되어 있지만 스택, 큐가 아닌 기본 리스트를 사용해도 시간초과가 발생하지 않는 문제 1. 매 원소마다 다음 원소부터 마지막까지 반복문을 통해 값을 비교하여 prices[i]와 prices[j]를 비교 2. prices[i]와 prices[j]를 비교 시 prices[i]가 prices[j]보다 작거나 같은경우 temp+1 후 반복 3. prices..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 사항 : k는 1 이상 5,000 이하인 자연수입니다. dungeons의 세로(행) 길이(즉, 던전의 개수)는 1 이상 8 이하입니다. dungeons의 가로(열) 길이는 2 입니다. dungeons의 각 행은 각 던전의 ["최소 필요 피로도", "소모 피로도"] 입니다. "최소 필요 피로도"는 항상 "소모 피로도"보다 크거나 같습니다. "최소 필요 피로도"와 "소모 피로도"는 1 ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 입력으로 받은 scoville 리스트를 힙(최소힙)으로 변환 2. 무한 루프 실행 종료 조건 2가지 1. 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우 scoville리스트의 원소가 1개이고, 첫번째 원소가 K보다 작으면 chk=False 저장 후 종료 2. 모든 음식의 스코빌 지수를 K 이상으로 만들 수 있는 경우 n1(첫번째 원소)이 K보다 크거나 같으면 종..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 사전 초기화 2. 현재 입력부터 한 문자씩 이어붙인 문자열이 사전에 없을때까지 반복문 진행(내부 반복문) 3. 2번에서 temp2에 저장한 사전에 없는 문자열을 사전에 추가 4. temp에 저장된 문자열(현재 입력으로부터 사전에 있는 가장 길이가 긴 문자열)을 answer 리스트에 추가 + 추가적인 설명은 주석 참고 코드 : def solution(msg): answer =..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 소수 판별을 위한 함수 정의(에라토스테네스의 체) 2. k진수로 변환 3. k진수로 변환한 값을 0을 기준으로 나누어서 소수 판별 * Tip - 소수 판별간 에라토스테네스의 체를 사용하지 않으면 시간초과가 발생함(테스트 케이스 1번 실패요인) 코드 : import math def solution(n, k): def find_prime(num): # 소수 판별 함수(에라토스테..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 그리디 문제로 귤의 크기에 따른 개수를 세어준 후 개수가 많은 것부터 세어주어야한다. 2. 리스트에 담겨있는 귤의 크기를 오름차순 정렬 후 귤의 크기에 따른 개수를 count_list에 저장 3. count_list의 원소들을 내림차순 정렬(개수가 많은 것부터 세어줘야 하므로) 4. k개 만큼 귤의 개수를 세어줌(코드 주석 참고) 코드 : def solution(k, ta..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 문제자체는 해시로 분류되어있지만 조금더 직관적이고 효율적인 코드로 해결하기 위해 아래와 같은 2가지 방법으로 풀이를 진행하였음 첫번째 방법(정렬) 1. 리스트를 정렬 2. i번째 문자열과 i+1번째 문자열을 비교(i번째 문자열 길이만큼)하여 같으면 answer = False * Tip - 여기서 리스트의 원소들은 문자열이기 정렬 후 Ex) ["1292","25","132"] ->..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. str1 문자열 길이만큼 반복하여 두 글자씩 끊은 문자가 알파벳일경우 소문자로 변환하여 str1_arr에 저장(str2도 동일) 2. 합집합 구하는 과정 str1_arr과 str2_arr의 원소들을 삭제하거나 추가하는 과정이 필요하므로 deepcopy(깊은 복사) 시행 str1_arr_copy[i]가 str2_arr_copy에도 있다면 union에 추가 후 두 원소를 각 리..