본문 바로가기

반응형

프로그래머스

(8)
[프로그래머스] 파일명 정렬 파이썬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 알고리즘은 아래와 같다. 1. head, number, tail로 분리 2. sorted의 lambda로 다중 정렬 기준 주기 3. 비교시에 head의 경우 대소문자 구분 없는 것으로 비교하고 출력 때는 원래 것, number도 마찬가지로 비교는 숫자로 바꿔서 비교하고 출력할 때는 다시 원래 것 (문자열)로 해야 하기 때문에 튜플로 묶어서 저장한다. 4. 비교시에는 튜플의 1번째 원..
[프로그래머스] 튜플 파이썬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 입력받은 s를 리스트로 변환한다. 그 이후에는 만들어진 리스트의 요소를 하나씩 접근, answer 리스트에 중복이 되지 않도록 not in 을 사용하여 하나 씩 append 한다. 여기서 핵심은 {{2}, {2,1}, {2,1,3}, {2,1,3,4}} {{2,1,3,4}, {2}, {2,1,3}, {2,1}} {{1,2,3}, {2,1}, {1,2,4,3}, {2}} 일 경우 다 ..
[프로그래머스] 기능개발 파이썬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 처음에 문제 이해가 좀 어려웠다. 1. progresses, speeds를 큐로 가정한다. 2. 모든 기능이 배포될 때까지, 즉 progresses가 빌 때까지 다음을 반복한다. progresses 길이만큼 순회하여 각 기능의 진행 상황을 더 해준다. 완성된 기능들이 있으면 배포한다. 그날 배포된 개수가 0보다 크면 answer에 넣는다. 3. 특정 날짜에 배포 개수들이 저장된 an..
[프로그래머스] 프린터 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 같은 우선순위 일 때, 구별하기 위해 2차원 배열로 나누었다. 2차원 배열로 만들어 2번째 값을 location에 해당하는 값, 다시 말해 내가 알고자 하는 인쇄물에 체크하고 deque를 사용해 계속 돌려주었다. 우선순위에 밀리면 뒤로 밀어내고, 우선순위에 맞다면 내가 찾는 값인지 체크를 확인한다. 만약 체크가 되어있지 않다면 빼내고 계속 돌린다. 정답 코드 from collection..
[프로그래머스] 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 먼저 리스트 scoville을 heapify 함수를 사용해 힙으로 만들어줘야 한다. 가장 첫 번째 원소, 즉 scoville[0]은 항상 힙의 루트 노드로 최솟값이기 때문에 scoville[0]이 K 보다 크거나 같을 때까지 반복문을 돌려준다. pop을 하지 않고 인덱스로만 비교해준다면 두 번째로 작은 값을 찾기 위해 세 번째 값까지 비교해야 하지만, 이 문제에서는 최솟값 2개를 뽑아 ..
[프로그래머스] 124 나라의 숫자 https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음엔 문제를 보고 좀 당황했었는데 3진법에서 한번 더 생각해보면 되는 문제였다. 124 나라의 특징은 - 1, 2, 4로만 숫자가 구성되어있다. - 4부터 자릿수가 늘어난다. - 7에서 앞자리 수가 바뀐다. - 10에서 앞자리 수가 2 커진다. 위 특징으로 규칙을 찾아보면 다음과 같은 규칙을 발견할 수 있다. 3으로 나눠지는 경우와 3으로 나눠지지 않는 경우, 두 가지 경우를 따져줘야 한다..
[프로그래머스] 오픈채팅방 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 딕셔너리를 이용하면 쉽게 풀 수 있는 문제 입력이 위와 같이 "Enter" "Leave" "Change"로 주어진다. "Enter"와 "Leave"를 처리하는 건 쉽지만 까다로운 것은 "Change"이다. "Change"를 처리하기 위해 나는 딕셔너리를 사용해서 유저의 아이디와 닉네임을 관리했다. def solution(record): answer = [] for i in record:..
[프로그래머스] 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 문자열을 몇 개 단위로 잘라서 압축해야 가장 짧은 문자열이 되는지 그 길이를 구하는 문제. 어떻게 하면 가장 짧은 압축 문자열을 구할 수 있을까?? aaaabbbbaaaabbbb는 8개 단위로 자르면 2aaaabbbb이고 4개 단위로 자르면 4a4b4a4b이다. 4개 단위로 잘랐을 때 압축 문자열이 더 짧다. 무조건 큰 단위로 자른다고 짧은 문자열이 되는 것이 아니기 때문에 다 구해봐야..

반응형