목록알고리즘/프로그래머스 (35)
DecordRay
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한사항 1 ≤ n ≤ 10^7 0 ≤ left ≤ right 모든 값을 넣는다면 시간초과가 날 것 2. 세번째 제한사항을 통해 right-left만큼 반목문을 통해서 원하는 값들만 저장하면 될 것이라고 생각 3. 문제의 예시 애니메이션을 통해 배열 값..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 우선순위와 location에 해당하는 문서인지 판별 여부를 print_list(스택)에 저장 찾을 문서이면 1 찾을 문서가 아니면 0 을 print_list의 두번째 원소로 저장 2. print_list 첫번째 원소의 우선순위를 priority, 찾는 문서인지 여부를 loc 변수에 저장 3. 문서의 우선순위 비교 꺼낸 문서의 우선순위가 가장 높다면 -> 꺼낸 문서를 스택에서..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. s에 있는 중괄호와 콤마를 없앤 후 리스트 형태로 변환해줌 Ex) 입력 예시 1의 경우 변환 전 -> s = {{2},{2,1},{2,1,3},{2,1,3,4}} 변환 후 -> s = ['2' , '2,1' , '2,1,3' , '2,1,3,4'] 2. 리스트에 있는 원소들을 개수에 따라 오름차순 정렬 3. 정렬 후 현재 str타입인 각 원소들 -> int형 타입으로 교체 ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 의상 종류별 개수를 세기 위한 딕셔너리 daily_fashion 생성 2. daily_fashion에 의상 종류별 개수 저장 딕셔너리에 해당 의상 종류가 없을 경우 1로 초기화 딕셔너리에 해당 의상 종류가 있을 경우 기존 개수 +1 3. 의상 종류만큼 반복문 실행하면서 answer에 각 종류별 의상의 개수 + 1을 곱해줌 Ex) "headgear" 종류가 green,blue..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 첫번째 방법에서 시간 효율이 떨어지는 것 같아 더 좋은 방법을 모색해보았음 첫번째 방법 1. 문자열 개수가 홀수일 경우와 짝수일 경우로 나누었음(문자열 개수가 홀수일 경우 무조건 올바른 문자열이 아니므로) 2. 반복문을 통해 문자열의 개수만큼 회전을 시키고 각 케이스마다 올바른 문자열인지 판별 3. while문 안의 반복문을 통해 인덱스를 1번부터 시작하여 올바른 문자열인지 판별..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 수포자 + 행렬을 고등학교때 배우지 않았었기 때문에(교과과정때문에..) 행렬이 굉장히 낯설었다. 검색을 통해 행렬의 곱 방법을 알아본 후에 문제를 다시 풀었다. 풀이 : 1. 입출력 예시 2의 경우 arr1 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] arr2 [[5, 4, 3], [2, 4, 1], [3, 1, 1]] return 값 [[22, 22, 11], [3..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. cache_arr이라는 캐시 리스트를 만든 후 그 안에 cacheSize만큼 cities[i]를 넣어준 후 cacheSize의 개수 = len(cache_arr)의 개수 일 경우 LRU를 실행하는 알고리즘을 생각하였음. * Tip - cities[i]가 cache_arr에 있는 경우 기존 cache_arr에 있는 cities[i]를 삭제 후 새로 cache_arr에 citi..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 배열 오름차순 정렬 2. 논문별 인용 횟수는 0회 이상 10000회 이하이므로 10000번 반목문을 돌려서(첫번째 반복문) H-Index의 최댓값을 탐색 3. 인용된 논문이 i 편 이상일 경우 H-Index값 최신화(두번째 반복문) 코드 : def solution(citations): answer = 0 citations.sort() for i in range(10001):..