목록algorithm (14)
archive
✏️ 문제 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr ✏️ 풀이 priorities배열에는 같은 원소도 존재하기 때문에 고유한 인덱스를 따로 저장할 공간이 필요하다. 그 후 인덱스 배열과 우선순위 배열을 동일하게 이동해야 한다. 반복문을 돌면서, head가 가장 큰 우선순위를 가지면 해당 원소를 프린트 해준다. (del, pop) 이 때 프린트 회수를 1 증가 시켜준다. (while문 돌 때마다 증가하는 거 아님 주의! 그냥 뒤로 보내는 건 출력하는 횟수에 포함되지 않는다.) 출력되는 원소가 원하는 위치의 ..
✏️ 문제 leetcode.com/problems/longest-palindromic-substring/ Longest Palindromic Substring - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ✏️ 풀이 가장 긴 Palindrome 문자열을 찾는 문제이다. (Palindrome : 앞에서부터 읽어도 뒤에서부터 읽어도 같은 문자열) 이전에 풀었던 문제는 그냥 문자열 전체가 팰린드롬인지 아닌지를 판별하는 거였어서, 단순히 앞과 뒤를 동시에 검사하면 ..
✏️ 문제 Most Common Word - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ✏️ 풀이 문제 조건대로 소문자로 치환하고 특수문자들을 replace함수를 통해 제거해주었다. testcase 중에 'b,b,b' 같은 형태가 있기 때문에 빈문자열로 치환하면 'bbb'와 같이 한 단어로 인식되기 때문에 공백으로 치환하여 split() 함수에서 다른 단어로 처리되도록 했다. 해당 문자열을 키로 가지고 빈도 수를 값으로 가지는 딕셔너리를 생성하여, 가장 큰 ..
✏️ 문제 Reorder Data in Log Files - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ✏️ 풀이 문제에서 제시된 대로 sort, sorted에 함수에 정렬 우선순위를 정해줘야하는 문제이다. 아직 sort함수와 lambda에 익숙하지 않고, 경우에 따라서 정렬기준이 달라져서 어려웠다 ✏️ 코드 class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: # 정렬 우선 순위 ..
✏️ 문제 Valid Palindrome - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ✏️ 풀이 기본적으로 깔린 생각은 문자/숫자 아닌 거 만나면 만날때까지 pop하다가 만나면 비교하기.. 기본 아이디어 자체는 쉬운데 코드로 옮기려니 영 불편했다. 일단 Alphanumeric 체크는 아스키코드 값 비교로 처리했다. 그리고 맨 처음엔 기존 배열을 뒤집은 새로운 배열을 이용해서 두 배열을 앞부터 차례로 비교해나가는 방식을 생각했는데, 그것보다는 한 배열에서 앞..

✏️ 문제 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr ✏️ 풀이 서로 다른 인덱스에 있는 두 수를 순차적으로 참조하기 위해 반복문을 2개 사용한다. 안쪽 반복문에서는 바깥쪽 반복문 기준 그 이후의 인덱스부터만 참조하면 된다. 마지막으로 sort만 하고 반환하면 되는 아주 간단한 문제 ✏️ 코드 def solution(numbers): answer = [] for idx,..