개발하는 핑구
article thumbnail
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 길 찾기 게임(Python)
Problem Solving/Programmers 2023. 2. 16. 16:19

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이진트리 문제로 별다른 풀이법은 생각나지 않아 노드와 트리를 직접 구현했다. 노드의 data로 비교하는 것이 아닌 x, y 값으로 트리를 생성해야한다. 깊이가 0부터 순서대로 저장하기 위해 먼저 y를 내림차순으로 정렬한다. 노드는 x, y, data(노드의 번호) 그리고 자식 노드의 대한 값을 저장한다. 정렬했던 순서대로(깊이가 0인 노드부터) 노드들을 뽑아내며 x값을 비교해 왼쪽 서브..

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT - 방금그곡 (Python)
Problem Solving/Programmers 2023. 2. 7. 17:55

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 내가 기억한 멜로디와 musicinfos에 있는 멜로디와 비교하기 위해 "C"과 "C#"을 구별하는 방법이 필요하다. 간단하게 replace를 활용해 "#"이 포함된 문자는 다른 문자로 대체한다. (ex. C# -> H) 각 음은 1분에 1개씩 재생되기 때문에 재생 시간이 멜로디의 길이보다 클 경우 멜로디의 길이를 재생 시간만큼 늘려준다. "조건이 일치하는 음악이 여러 개일 때에는 라디..

[프로그래머스] 인사고과 (Python)
Problem Solving/Programmers 2023. 2. 5. 17:21

문제 https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 일단 1 ≤ scores의 길이 ≤ 100,000의 제한이 있기 때문에 O(n^2)으로 한 사원마다 모든 사원을 비교해 풀게 되면 시간 초과가 발생한다. 그렇기 때문에 O(n)으로 풀어주어야 한다. 문제에서 중요한 조건 중 하나가 "어떤 사원이 다른 임의의 사원보다 두 점수가 모두 낮은 경우가 한 번이라도 있다면 그 사원은 인센티브 받지 못한다." 라는 것이다. 일단 근무 태도 점수를..

[백준] 17298 - 오큰수 (Python)
Problem Solving/Baekjoon 2023. 2. 4. 17:07

문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,00..

[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - 순위 검색 (Python)
Problem Solving/Programmers 2023. 1. 24. 16:00

문제 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...

[백준] 14567 - 선수과목 (Python)
Problem Solving/Baekjoon 2023. 1. 22. 16:57

문제 올해 Z대학 컴퓨터공학부에 새로 입학한 민욱이는 학부에 개설된 모든 전공과목을 듣고 졸업하려는 원대한 목표를 세웠다. 어떤 과목들은 선수과목이 있어 해당되는 모든 과목을 먼저 이수해야만 해당 과목을 이수할 수 있게 되어 있다. 공학인증을 포기할 수 없는 불쌍한 민욱이는 선수과목 조건을 반드시 지켜야만 한다. 민욱이는 선수과목 조건을 지킬 경우 각각의 전공과목을 언제 이수할 수 있는지 궁금해졌다. 계산을 편리하게 하기 위해 아래와 같이 조건을 간소화하여 계산하기로 하였다. 한 학기에 들을 수 있는 과목 수에는 제한이 없다. 모든 과목은 매 학기 항상 개설된다. 모든 과목에 대해 각 과목을 이수하려면 최소 몇 학기가 걸리는지 계산하는 프로그램을 작성하여라. 입력 첫 번째 줄에 과목의 수 N(1 ≤ N ..