본문 바로가기
반응형

알고리즘18

[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.
[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] 백준 1347: 미로 만들기 solved.ac 기준 Silver 2구현 문제의 매력은 문제 속에서 모든 해답을 찾을 수 있기 때문에, 한 없이 꼬아서 낼 수 있다는 점이다. 아니면 요구사항을 대폭 늘려서 코드 생산 효율을 줄여버릴 수도 있다. 이를 격파해내기 위해 설계하는 과정을 보기 위해 어려운 구현 문제는 꼭 필요한 것 같다. 해당 문제는 노트에 움직이면서 미로를 그리는 형식이기 떄문에 출력이 매우 유동적이라는 점이다. 이 부분에서 유추해내 문제를 풀었다.문제홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍준이는 미로에서 모든 행과 열의 이동할 수 있는 칸을 걸어다녔다. 그러면서 자신의.. 2024. 6. 29.
0. 자료구조란? 자료구조? 자료구조(Data Structure)는 데이터를 효율적으로 관리할 수 있도록 만든 데이터의 구조를 말한다. 데이터의 효율적인 접근과 변경을 위한 방법이기 때문에 알고리즘을 배우기 전에 무조건적으로 선행하여 학습해야하는 컴퓨터 과학 학문이다. 메모리는 1차원 구조이기 때문에, 세상 속에 존재하는 다차원 구조의 데이터를 메모리에 맞게 1차원으로 표현하는 방법을 학습한다.  데이터의 저장과 접근을 효율적으로 하기 위해서 자료구조는 매우 중요하다. 적절한 구조를 사용하면 알고리즘의 성능을 크게 향상시킬 수 있으며, 잘못된 구조를 선택하면 프로그램의 성능이 저하될 수 있다. 따라서 자료구조를 깊이 이해하고 상황에 맞게 활용하는 능력은 모든 소프트웨어 개발자에게 필수적이다. 예를 들어, 데이터 검색이 빈.. 2024. 6. 26.
[Python] 백준 21608: 상어 초등학교 solved.ac 기준 Gold5 구현 문제의 핵심은 지문을 잘 이해해서 풀이 속도를 높이는 것이다. 그래서 국어 비문학 문제와 같기도 하다. 사실 특별한 기술을 요하는 것이 없고, 어떻게든 풀 수 있게 나오기 때문에, 글에 나와있는 규칙을 이해하고, 코드로 옮기는 과정을 빠르게 해야한다. 그래서 이 문제처럼 긴 지문이 나오면 덜커덕 겁이 나기도 하지만, 세심하게 읽으면서 구조를 짠다. 한 3~4분은 키보드 안잡고 문제를 보며 구조를 생각하는 습관을 들이자. 문제 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호가 매겨져 있고, (r, c)는 r행 c열을 의.. 2024. 4. 13.
반응형