본문 바로가기

분류 전체보기36

[JAVA: 프로그래머스] 햄버거 만들기 목차 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내풀이 import java.util.Stack; class Solution{ public int solution(int[] ingredient) { Stack stack = new Stack(); int answer = 0; for (int i : ingredient) { stack.push(i); int sz = stack.size(); if (sz>=4 && stack.peek() == 1) { if (stack.get(sz-2) == 3 && stack.get(sz-3) == 2 && sta.. 2023. 7. 22.
[PYTHON: 프로그래머스] 햄버거만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(ingredient): lst = [] cnt = 0 for i in ingredient : lst.append(i) if lst[-4:] == [1,2,3,1]: cnt+=1 # lst = lst[:-4] for _ in range(4): lst.pop() return cnt 이 문제는 STACK을 활용하여, [1,2,3,1]이 나오면 제거를 하는방식으로 풀어야 한다. 평소 리스트에서 요소 제거 할 때 POP을 활용하는 것이 속도가 빠른 것은 알고 있었지만, FOR문을 돌며 4번.. 2023. 7. 21.
[백준 : PYTHON] 1715_카드정렬하기 문제링크 : https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 : 풀이과정 문제풀이 로직 결과적으로 작은 값부터 더해야 최소 값을 만들 수 있으므로, 우선순위 큐를 활용. 최소 값 2개를 꺼낸 뒤, 이들을 더한 값을 다시 리스트에 추가 & 값 누적 하면 된다. 최소 값 두 개를 더한 값을 리스트에 다시 추가했기 때문에, queue의 길이가 1일 때까지 누적 값을 구한다. (누적 값에는 선 반영이 되어있기 때문) 내 풀이 imp.. 2023. 5. 25.
[PYTHON] PriorityQueue, heapq 목차 우선순위 큐? GREEDY알고리즘 문제는 정렬 아니면 우선순위 큐 문제일 정도로 자주 쓰이는 자료구조. 일반적인 QUEUE처럼, 데이터가 들어온 순서대로 나가는 것이 아니라, 우선순위가 높은 데이터가 먼저 출력되는 자료구조. 우선순위 큐는 힙으로 구현 가능한데, 최소값 우선큐 = 최소힙 & 최대값 우선큐 = 최대힙 O(logn) 의 시간복잡도 PriorityQueue 와 heapq 모두 최소힙( 작은값부터 출력) 만 지원. queue.PriorityQueue( ) Tip queue 모듈의 다음과 같은 클래스들 에서, 동일 메소드 사용 가능. queue.Queue ( maxSize ) 기본 큐. FIFO 구조 queue.SimpleQueue 입력 제한 없는 FIFO 큐 queue.LifoQueue (.. 2023. 5. 25.
[JAVA] PriorityQueue : 우선순위 큐 목차 우선순위 큐? GREEDY알고리즘 문제는 정렬 아니면 우선순위 큐 문제일 정도로 자주 쓰이는 자료구조. 일반적인 QUEUE처럼, 데이터가 들어온 순서대로 나가는 것이 아니라, 우선순위가 높은 데이터가 먼저 출력되는 자료구조. 우선순위 큐는 힙으로 구현 가능한데, 최소값 우선큐 = 최소힙 & 최대값 우선큐 = 최대힙 O(logn) 의 시간복잡도 알고리즘 삽입 알고리즘 큐에 값이 삽입되면 다음과 같이 진행된다 출처 : [Java] PriorityQueue(우선순위 큐) 클래스 사용법 & 예제 총정리[코딩팩토리] 삭제 알고리즘 출처 : [Java] PriorityQueue(우선순위 큐) 클래스 사용법 & 예제 총정리[코딩팩토리] 활용 선언 import java.util.PriorityQueue; impo.. 2023. 5. 25.
[프로그래머스:JAVA] 2차원으로 만들기 문제링크 : 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : 2차원으로 만들기 문제 설명 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. num_list n result [.. 2023. 5. 24.
[프로그래머스:PYTHON] 공던지기 문제링크 : 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : 공던지기 문제 설명 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 제한사항 2 < numbers의 길이 < 100 0 < k < 1,000 numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다... 2023. 5. 24.
[프로그래머스: PYTHON] 배열회전시키기 목차 문제링크 : 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : 배열 회전시키기 문제 설명 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 3 ≤ numbers의 길이 ≤ 20 direction은 "left" 와 "right" 둘 중 하나입니다. 입출력 예 numbers kdirection result [1, 2, 3] "right" [3, 1, 2] [4, 455, 6.. 2023. 5. 24.
[백준:JAVA] 단어수학 목차 문제링크 : https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 : # 1339_단어수학 *** ## 문제 설명 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 .. 2023. 5. 23.