본문 바로가기
반응형

전체 글84

[Python] 백준 1182: 부분수열의 합 solved.ac기준 Silver 2 요즘 들어 슬럼프가 오는 기분. 간단한 문제도 잘 읽히지가 않는 현상이 와 천천히 풀고 있다. 이번 문제도 처음에 접근법을 헷갈려 한참 해메다가 풀었다.  문제N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.출력첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다.예제 입력 15 0-7 -3 -2 5 8예제 출력 11정답 코드N, S =.. 2024. 7. 5.
3. 큐 (Queue) 큐란? 선입선출(First In First Out / FIFO) 특성을 가지는 선형 자료 구조이다. 앞서 살펴본 스택과는 대비되는 특성으로, 스택과는 반대로 먼저 들어온 데이터가 먼저 나오는 순서를 유지하는 구조를 가지고 있다.큐의 연산 큐에는 선형큐, 환형큐, 우선순위 큐 등의 바리에이션이 있지만 여기서는 선형큐를 기준으로 설명한다.기능명칭시간복잡도삽입enqueueO(1)삭제dequeueO(1)큐의 장점 1. 작업의 순서를 유지하여야 하는 알고리즘에 적합하다. 2. 효율적인 삽입과 삭제로 연산 시간이 매우 적다. 3. 운영체제의 스케줄링, 네트워크 패킷 처리, 예약, 대기열 등 많은 분야에서 활용도가 높다. 큐의 단점 1. 순서를 유지해야하는 특성상 스택과 배열에 비해서는 약간 복잡한 구조. 2. 스택.. 2024. 7. 2.
[Python] 백준 17374: 비트베리 solved.ac 기준 Silver 1 알고리즘을 푸는 데 수학적 지식이 무조건 있어야 하는 이유이다. 가끔씩 이렇게 수식으로 끝내야만 하는 문제가 나오므로 점화식을 살펴보는 능력을 준비하고 있어야 한다.문제비트베리는 국내 최다 사용자를 확보하고 있는 간편암호화폐 지갑이다. 비트베리의 가장 큰 특징 중 하나는 카카오 계정으로 지갑을 만들고, 전화번호로 암호화폐를 주고받을 수 있는 점이다. 페카즈는 비트베리의 특징을 이용해 자신이 보유한 다양한 종류의 암호화폐를 친구 빈센트와 상호 교환하고자 한다. 현재 페카즈의 비트베리 지갑 속에는 P개의 비트와 Q개의 베리가 들어 있다. 페카즈의 친구 빈센트는 엄청난 부자여서, 자신의 비트베리 지갑 속에 비트, 베리, 그리고 또 다른 단위인 코인과 비트코인을 각각 10.. 2024. 7. 2.
[Python] 백준 1189: 컴백홈 solved.ac 기분 Silver 1 백트래킹 문제는 모든 경우의 수를 살펴보는 럭키브루트포스(?)이기 때문에 분기문을 잘 작성해야 시간초과, 메모리 문제에서 벗어날 수 있다. 그러한 기틀을 다지기 위해 재귀를 구성해 중간에 살펴보지 않아도 되는 케이스는 도려낼 수 있는 로직으로 구성해 풀 수 있는 문제이다.문제한수는 캠프를 마치고 집에 돌아가려 한다. 한수는 현재 왼쪽 아래점에 있고 집은 오른쪽 위에 있다. 그리고 한수는 집에 돌아가는 방법이 다양하다. 단, 한수는 똑똑하여 한번 지나친 곳을 다시 방문하지는 않는다.      cdef  ...f  ..ef  ..gh  cdeh  cdej  ...f       bT..  .T.e  .Td.  .Tfe  bTfg  bTfi  .Tde       a... .. 2024. 7. 1.
[Python] 백준 15645: 내려가기 2 sovled.ac 기준 Silver 1 개인적으로 알고리즘 문제 중 가장 수학적 사고력을 동반한 창의성을 요구하는 분야가 DP라고 생각한다. 저장할 공간의 효율과 동시에 방식을 스스로 정하여 수학 공식 처럼 점화식을 만들어 내야 하기 때문에, 수학 공부를 해야하나 고민하게 하는 분야 중 하나다. 문제N줄에 0 이상 9 이하의 숫자가 세 개씩 적혀 있다. 내려가기 게임을 하고 있는데, 이 게임은 첫 줄에서 시작해서 마지막 줄에서 끝나게 되는 놀이이다.먼저 처음에 적혀 있는 세 개의 숫자 중에서 하나를 골라서 시작하게 된다. 그리고 다음 줄로 내려가는데, 다음 줄로 내려갈 때에는 다음과 같은 제약 조건이 있다. 바로 아래의 수로 넘어가거나, 아니면 바로 아래의 수와 붙어 있는 수로만 이동할 수 있다는 것이다.. 2024. 6. 30.
[Python] 백준 1347: 미로 만들기 solved.ac 기준 Silver 2구현 문제의 매력은 문제 속에서 모든 해답을 찾을 수 있기 때문에, 한 없이 꼬아서 낼 수 있다는 점이다. 아니면 요구사항을 대폭 늘려서 코드 생산 효율을 줄여버릴 수도 있다. 이를 격파해내기 위해 설계하는 과정을 보기 위해 어려운 구현 문제는 꼭 필요한 것 같다. 해당 문제는 노트에 움직이면서 미로를 그리는 형식이기 떄문에 출력이 매우 유동적이라는 점이다. 이 부분에서 유추해내 문제를 풀었다.문제홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍준이는 미로에서 모든 행과 열의 이동할 수 있는 칸을 걸어다녔다. 그러면서 자신의.. 2024. 6. 29.
반응형