Computer Science/Algorithms
-
프로그래머스 - 구명보트Computer Science/Algorithms 2025. 2. 15. 22:50
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 프로그래머스 - 구명보트 (Python 풀이)문제 링크: 프로그래머스 구명보트난이도: LV.2주제: 탐욕법(Greedy), 투포인터🧐 문제 설명구명보트에는 최대 2명까지 탈 수 있으며, 무게 제한이 있음사람들의 몸무게 리스트 people와 보트의 무게 제한 limit이 주어질 때, 모든 사람을 구출하기 위한 최소 보트 수를 구하기📝 접근 방법정렬사람들의 몸무게 리스트를 오름차순으로 정렬가벼운 사람과 무거운 사람을 함께 태우는 방식으로 보트를 최소화투포인터 활용왼쪽 포인터(left)는 가장 가벼운 사람, 오른쪽 포인터(right)는 가장 무거운 사람..
-
프로그래머스 - 큰 수 만들기Computer Science/Algorithms 2025. 2. 14. 22:09
https://school.programmers.co.kr/learn/courses/30/lessons/42883?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 군대 전역하고 그리디 문제들을 쉽게 풀었는데, 예전만큼 빠릿빠릿하게 풀리지 않는다. 욕망이 없어서 그런가. ㅎ 📌 프로그래머스 - 큰 수 만들기 (Python 풀이)문제 링크: 프로그래머스 큰 수 만들기난이도: LV.2주제: 스택, 탐욕법(Greedy)🧐 문제 설명숫자 문자열 number에서 k개의 숫자를 제거하여 얻을 수 있는 가장 큰 숫자를 구하세요.반환값은 문자열로 반환합니다.📝 접근 방법스택 활용숫..
-
프로그래머스 - 프로세스Computer Science/Algorithms 2025. 2. 8. 00:41
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 프로그래머스 - 프린터 (Python 풀이)문제 링크: 프로그래머스 프린터난이도: LV.2주제: 큐(Queue), 시뮬레이션🧐 문제 설명여러 개의 문서가 프린터 대기열에 있음.특정 문서(location 위치의 문서)가 언제 인쇄되는지 알아내야 함.우선순위가 높은 문서가 먼저 인쇄됨.같은 우선순위가 여러 개 있을 수 있음.📝 접근 방법우선순위 큐(Deque) 사용(우선순위, 인덱스) 형태로 큐를 생성deque를 활용하여 문서를 순환 처리우선순위가 높은 문서를 먼저 출력하도록 설계현재 문서가 max(priorities)보다 작으면 맨 뒤로 이동우선순위..
-
프로그래머스 - 의상Computer Science/Algorithms 2025. 2. 3. 21:37
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 프로그래머스 - 위장 (Python 풀이)문제 링크: 프로그래머스 위장난이도: LV.2주제: 해시, 조합🧐 문제 설명스파이는 clothes 목록에서 한 가지 이상의 의상을 선택해 입어야 함.같은 종류의 의상은 한 개만 착용할 수 있음.아무것도 착용하지 않는 경우는 제외하고, 의상을 조합할 수 있는 경우의 수 구하기.📝 접근 방법해시 딕셔너리 생성defaultdict(list)을 사용하여 각 의상 종류별로 리스트를 저장.예: {"headgear": ["hat1", "hat2"], "eyewear": ["sunglasses"]}조합의 경우의 수 계산각..
-
프로그래머스 - 전화번호 목록Computer Science/Algorithms 2025. 2. 3. 21:24
프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 프로그래머스 - 전화번호 목록 (Python 풀이)문제 링크: 프로그래머스 전화번호 목록난이도: LV.2주제: 해시, 정렬, 문자열 탐색🧐 문제 설명전화번호 목록이 phone_book 리스트로 주어짐한 번호가 다른 번호의 접두사인 경우가 있는지 확인만약 접두사 관계가 존재하면 False, 그렇지 않으면 True를 반환📝 접근 방법정렬을 활용한 탐색문자열 정렬을 수행하면, 접두사가 되는 번호는 바로 앞에 위치하게 됨예: ["119", "97674223", "1195524421"] → 정렬 후 ["119", "1195524421", "97674223"..
-
프로그래머스 - 완주하지 못한 선수Computer Science/Algorithms 2025. 2. 3. 21:15
https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 한줄 요약 : Counter 함수 활용 📌 프로그래머스 - 완주하지 못한 선수 (Python 풀이)문제 링크: 프로그래머스 완주하지 못한 선수난이도: LV.1주제: 해시, Counter 활용🧐 문제 설명마라톤에 참여한 선수 명단(participant)과 완주한 선수 명단(completion)이 주어짐.단, 한 명을 제외한 모든 선수가 완주완주하지 못한 선수의 이름을 찾아 반환🔶 동명이인이 존재할 수 있음 🔶 (이거 중요!!)📝 ..
-
프로그래머스 - 폰켓몬Computer Science/Algorithms 2025. 2. 3. 21:08
https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 Coding Test High Score Kit 이라는 문제집이있다. 몇 문제되지 않으며, 요약 본으로 짧게 코테를 준비할 때 편하다는 것 같아 해시 파트를 풀었다. 📌 프로그래머스 - 폰켓몬 (Python 풀이)문제 링크: 프로그래머스 폰켓몬난이도: LV.1주제: 해시, 집합(Set)🧐 문제 설명N 마리의 폰켓몬 중에서 N/2 마리만 선택할 수 있다.같은 종류의 폰켓몬이 있을 수 있으며, 가능한 한 서로..
-
[자료구조][BJ 10799] 프린터 큐Computer Science/Algorithms 2025. 1. 19. 21:04
https://www.acmicpc.net/problem/10799 해당 문제는 레이저로 쇠를 절단하였을 때 쇠 막대가 몇 마디로 나눠지는지 찾는 문제이다. 1. 레이저는 () 로 나타낸다.2. 쇠막대의 왼쪽 오른쪽은 각각 '('. ')' 으로 나타낸다. 접근 방법이 문제는 Stack 을 이용하여 접근하면 쉽게 풀 수 있다. 문자열을 하나씩 읽으며 다음과 같이 처리한다.1. '(' 가 나타난 경우, 이는 쇄 막대기의 시작이므로 Stack에 push 한다. 이전 직전 괄호가 '(' 인 경우, stack에 있는 막대기를 절단하므로, 현재 Stack의 길이 만큼 막대기의 조각을 추가한다.이전 직전 괄호가 ')' 인 경우, 막대의 끝을 의미하기에 ')' 막대의 조각을 하나 추가한다. import sysfr..