문제 https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이진트리 문제로 별다른 풀이법은 생각나지 않아 노드와 트리를 직접 구현했다. 노드의 data로 비교하는 것이 아닌 x, y 값으로 트리를 생성해야한다. 깊이가 0부터 순서대로 저장하기 위해 먼저 y를 내림차순으로 정렬한다. 노드는 x, y, data(노드의 번호) 그리고 자식 노드의 대한 값을 저장한다. 정렬했던 순서대로(깊이가 0인 노드부터) 노드들을 뽑아내며 x값을 비교해 왼쪽 서브..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내가 기억한 멜로디와 musicinfos에 있는 멜로디와 비교하기 위해 "C"과 "C#"을 구별하는 방법이 필요하다. 간단하게 replace를 활용해 "#"이 포함된 문자는 다른 문자로 대체한다. (ex. C# -> H) 각 음은 1분에 1개씩 재생되기 때문에 재생 시간이 멜로디의 길이보다 클 경우 멜로디의 길이를 재생 시간만큼 늘려준다. "조건이 일치하는 음악이 여러 개일 때에는 라디..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 일단 1 ≤ scores의 길이 ≤ 100,000의 제한이 있기 때문에 O(n^2)으로 한 사원마다 모든 사원을 비교해 풀게 되면 시간 초과가 발생한다. 그렇기 때문에 O(n)으로 풀어주어야 한다. 문제에서 중요한 조건 중 하나가 "어떤 사원이 다른 임의의 사원보다 두 점수가 모두 낮은 경우가 한 번이라도 있다면 그 사원은 인센티브 받지 못한다." 라는 것이다. 일단 근무 태도 점수를..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level 2 이지만 굉장히 골치 아팠던 문제입니다. 코드 1 from collections import deque def solution(info, query): answer = [] dq = deque(info) info_lst = [] new_info = [] while dq: q = dq.popleft() info_lst.append(q) for i in info_lst: p = i...