목록level2 (21)
DecordRay
문제 : 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에 추가 후 두 원소를 각 리..
문제 : 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..