자료구조&알고리즘

자료구조&알고리즘/프로그래머스

[230424-25] 프로그래머스 Level 2 - 요격시스템

문제는 링크와 더보기를 참조 더보기 문제 설명 A 나라가 B 나라를 침공하였습니다. B 나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A 나라는 B 나라의 아이기스 군사 기지에 융단폭격을 가했습니다.A 나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을 자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소로 사용해서 모든 폭격 미사일을 요격하려 합니다.A 나라와 B 나라가 싸우고 있는 이 세계는 2 차원 공간으로 이루어져 있습니다. A 나라가 발사한 폭격 미사일은 x 축에 평행한 직선 형태의 모양이며 개구간을 나타내는 정수 쌍 (s, e) 형태로 표현됩니다. B 나라는 특정 x 좌표에서 y 축..

자료구조&알고리즘/프로그래머스

[230409] 프로그래머스 Level 1 - 폰켓몬

문제는 링크 와 아래를 참고 더보기 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(..

자료구조&알고리즘

[알고리즘] 소수찾기 - 에라토스테네스의 체(C++ / Python)

소수를 구할 때 시간효율적으로 풀 수 있도록 주로 이 방법을 사용한다고 함. 소수 구하기 2 ~ N 까지 에라토스테네스 채를 통해 소수를 구하는 방법은 다음과 같다. 2부터 시작해서 N까지 진행 가장 작은 수를 선택 그 작은 수를 소수라고 가정하고 작은 수부터 N까지 그 작은 수의 배수를 모두 제거 n=1000 a = [False,False] + [True]*(n-1) primes=[] for i in range(2,n+1): if a[i]: primes.append(i) for j in range(2*i, n+1, i): a[j] = False print(primes) #include #include using namespace std; int main(){ int n = 1000; int check[..

자료구조&알고리즘/프로그래머스

[230316] 프로그래머스 Level 1 - 바탕화면 정리

📌문제 더보기 문제 설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은..

자료구조&알고리즘/이코테

[알고리즘 / 자료구조] DFS / BFS

⭐️ DFS/BFS ⭐️ - 그래프 탐색 알고리즘으로 원하는 데이터를 찾는 과정 📌 사전 지식 ✅ 스택 (STACK) : LIFO(Last In First Out, 후입선출) 의 자료구조를 의미 , 입구와 추구가 동일한 형태로 시각화 할 수 있음 (ex; 박스 쌓고 내리기) 🐍 Python 🐍 스택 사용법 1 (내장함수 이용방법) 📋 : list를 통해 append(), pop() 등이 있음 -> 시간 복잡도가 상수시간이기 때문에 그대로 사용해도 괜찮음 stack_list = [2, 5, 3, 4] stack_list.append(1) # 괄호 내의 요소를 리스트 맨 뒤에 넣음 # stack_list = [2, 5, 3, 4, 1] stack_list.pop() # 리스트 맨 뒤의 요소를 꺼내고 리스트에..

자료구조&알고리즘/이코테

[알고리즘 / 자료구조] 그리디 , 구현

⭐️ 그리디 ⭐️ 탐욕법 : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 (현재 선택이 나중에 미칠 영향을 고려하지 않음 여기서 나중에 미칠 영향을 고려하는 것이 다익스트라, 플로이드 위셜 알고리즘) 예시 N원을 거슬러 주어야할 때 가장적은 숫자의 화폐를 이용해 거슬러주는 경우는? (잔돈 , 500 / 100 / 50 / 10 ) → 대표적인 그리디 알고리즘으로 해결할 수 있는 방법 “가장 큰 화폐 단위로부터 돈을 거슬러 주면되는 것” 문제 해결과정 N원에 대해 500원으로 거슬러 줄 수 있을 만큼 거슬러 줌 100원을 거슬러 줄 수 있을 만큼 거슬러 줌 50 → 10 차례로 거슬러 줌 Python solve n = 1260 # N원이 1260원일 경우 array = [500, 100, 50, 10]..

자료구조&알고리즘/프로그래머스

[230306] 프로그래머스 Level 2 PYTHON (프린터)

https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J..

자료구조&알고리즘/프로그래머스

[230304] 프로그래머스 Level 1 PYTHON (콜라문제 / 가까운 글자 문제)

문제 1 더보기 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 ..

capaca
'자료구조&알고리즘' 카테고리의 글 목록