목록전체 글 (307)
코딩하는 해맑은 거북이
해당 글은 프로그래머스 해시 Level3 문제 '베스트앨범'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 딕셔너리의 key, value 형태를 이용해서 푸는 문제이다. 딕셔너리 2개를 이용해서 먼저 많이 재생된 장르를 정렬하고, 장르 중에 많이 재생된 노래를 정렬해서 2개만 정답으로 넣어주면 된다. 코드 def solution(genres, plays): answer = [] genres_dict = {} total_g..
해당 글은 프로그래머스 Level2 '줄 서는 방법'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 일반적인 순열문제로 풀면 효율성 테스트케이스에서 실패한다. 그래서 숫자간 규칙을 찾아내서 구해야한다. 팩토리얼을 통해 answer의 맨 앞부터 채워나가면 된다. arr = [1, 2, 3], fac(2) = 2 k : 5~6 일 때, (k-1)//fac = 2, arr[2] = 3 k : 3~4 일 때, (k-1)//fac..
해당 글은 프로그래머스 Level2 '전력망을 둘로 나누기'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 wires중 한 개의 전선을 지웠을때의 bfs를 각각 모두 구해서 두 개의 그래프의 노드 갯수 차이 절댓값이 작은 값을 return 해주었다. 또 다른 방법으로는 union-find 알고리즘을 통해 구해도 풀릴 것 같다. 코드 from collections import deque def bfs(graph, start..
해당 글은 프로그래머스 Level1 '문자열 내 마음대로 정렬하기'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 sorted() 함수의 key로 n번째 값 기준으로 정렬한다. 이때 같은 문자열일 경우, 사전순으로 정렬되어야 하므로 sorted() 함수를 사용하기 전에 문자열 전체 리스트에 대해서 정렬해준다. 코드 def solution(strings, n): strings.sort() answer = sorted(str..
해당 글은 프로그래머스 힙(Heap) Level 3 '이중우선순위큐'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 해당 문제는 리스트를 이용한 방법과 heapq 모듈을 사용한 방법 2가지로 풀었다. 기본 원리는 비슷하나 heapq 모듈을 사용한 방법에서 리스트 q에서 최대값을 제거한 후 heapify를 해주어 변경된 리스트 q를 다시 힙으로 변환하는 과정이 있어야 힙의 구조를 깨뜨리지 않을 수 있다. 하지만, 해당 문제..
해당 글은 프로그래머스 완전탐색 Level 2 '카펫'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 중앙에 노란색이 칠해져있고, 테두리 1줄만 갈색으로 칠해져있으므로 yellow의 가로에 양옆에 갈색이 있으므로 +2 yellow의 세로에 위아래로 갈색이 있으므로 +2 이 값 두개를 곱하면 전체 카펫의 크기가 나오는 것을 이용하였다. 그리고 카펫의 가로 길이가 세로 길이보다 같거나 크므로 answer[0]에 max처리를 ..