https://www.acmicpc.net/problem/22864피로도가 M이 넘지않게하면서 많은 일을 하게 하는 문제스터디에서 브르투포스 알고리즘 카테고리에 있던 문제였다. 하지만 아무리 봐도 그리디 알고리즘을 사용하는것 같아 M을 넘지 않는 선에서 계속
블랙잭 변형게임으로, 입력으로 주어진 N개의 카드중 3개를 그 총합이 M에 가깝게 골라 그 합을 리턴하는 문제이다.nC3, 즉 조합 문제이다. 파이썬에서는 조합을 지원하므로 Combination 함수를 사용하여 만든 후 그 합이 M 이하인것중 최대의 값을 찾아주었다.
오목판이 주어지면 1번플레이어가 이겼는지 2번플레이어가 이겼는지 판단하는 문제이다. 육목인 경우는 제외하도록 한다.오목은 8방향으로 다섯개를 연달아 놓으면 이기는 게임이다. 판에 0이 아닌부분을 차례대로 살펴보며 오목인지 판단한다. 모든 8방향을 볼 필요는 없고 중복을
각 행, 열이 등차수열을 이루는것들로 골라 그 수를 이어붙인 수를 찾고 그 중 가장 큰 제곱수를 찾는 문제이다.우선 문제와 예제를 보면, 0을 포함한 등차수열로 이루어진 행과 열을 고른다. 그 중 음수도 포함된다.입력 크기가 그렇게 크지 않기때문에, 모든 경우에 대해
암호코드를 해석할 수 있는 경우의 수를 찾는 문제이다.1과 27 사이의 알파벳번호를 이용하여 만든 암호이다. 만약 숫자열이 주어진다면 해석하면 무엇을 만들 수 있을지 모든 경우의 숫자를 체크한다.앞 한자리는 한가지의 암호밖에 만들 수 없어서 1이다.두번째 숫자까지는 만
N을 K개의 수를 이용하여 합이 되는 경우를 찾는 문제이다.dp문제 답게 규칙성을 찾아보았다.k=1인경우, 모든 N에 대해 1이다.k = 2인 경우 , n+1이다.k = 3 인 경우, 1 + ... + n+1까지의 합이다. 이를 식으로 나타내면 1 + f(1,2), +
파도반수열의 N번째 항을 구하는 문제이다.규칙성을 보다보니, 6번째 수열부터 규칙을 발견하였다홀수번째 수열의 경우, 직전 짝수번째 + 전 전 짝수번째짝수번째 수열의 경우, 직전 홀수번째 + 전 전 홀수번째위 규칙을 적용하여 점화식은5보다 큰 N에 대해 p(N) = p(
1x2와 2x1의 타일로 3xN의 타일을 채우는 방법의 수를 구하는 문제첫번째로, N이 홀수라면 채울 수 없다타일의 면적은 2이다. 그러므로 면적이 2의 배수여야만 채울 수 있지만 n이 홀수일 경우 2의 배수가 아니기때문에 채우기 불가능.두번째로, 점화식을 구한다.2일
https://www.acmicpc.net/problem/5568N개의 카드 중 k개의 카드를 골라 이어붙여서 만들 수 있는 정수의 갯수를 구하는 문제이다이 경우 카드를 뽑는 순서에 따라서도 충분히 경우가 달라질 수 있다. 그렇다면 조합이 아닌 순열 (perm
https://www.acmicpc.net/problem/14500쉽게 말하면 테트리스에 나오는 도형들을 테트로미노라고 한다. 총 5가지의 종류가 있는데 이것들을 대칭시키거나 회전시켜도 된다.맵을 하나 주고 그 안에 딱 하나의 테트로미노를 배치하여 그 안에 있
https://www.acmicpc.net/problem/1992영상을 압축하여 표현할때 쓰는 구조인 쿼드트리이다.정사각형을 기준으로 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 순으로 모두 0이면 0을, 1이면 1을 출력한다.다만 모두 0과 1이 아니면
https://www.acmicpc.net/problem/2447주어진 형식대로 재귀를 사용하여 별찍기를 하는 문제이다.바로 재귀를 사용해서 print를 하기에는 어려울 것 같다는 생각이 들었다.3의 제곱으로 이루어진 패턴임으로 서서히 27 -> 9 -> 3
https://www.acmicpc.net/problem/2073배관을 사용하여 수도관을 만드는데, 그 중 최대용량이 되도록 만드는 문제이다.처음에 문제 이해 자체를 잘못하여 많이 돌아온 문제이다. 문제를 정확히 이해해보면, 파이프를 이용하여 딱 길이가 D인
https://www.acmicpc.net/problem/15483편집 거리 알고리즘을 사용하여 문자열의 유사도를 구하는 문제이다.편집거리 알고리즘은 두 문자열의 유사도를 판단하는 알고리즘이다.수정, 삽입, 삭제 기능이 있다고 할 때 몇 번의 동작이 필요한지
https://www.acmicpc.net/problem/12813100,000 자리수인 비트연산을 진행하는 기본 문제이다.int(input(),2) = 이진수를 받아와서 십진수로 바꿔준다bin(a & b)2: = 이진수의 연산을 진행해준다.python에서는
출처 https://www.acmicpc.net/problem/11723 문제 다양한 집합 연산을 원하는 대로 처리하는 문제이다
https://www.acmicpc.net/problem/2064문제 이해가 좀 어려웠던 문제였다. 결국 이해하게 된 내용은서브넷 마스크 & 임의의 ip주소 = 네트워크 주소 로 이해했다.여기서 조건이 하나 있는데 ,가장 크기가 작은(포함되는 IP주소가 가장
https://www.acmicpc.net/problem/19598회의실을 최소로 배정했을때의 갯수를 구하는 그리디 문제이다.눈앞의 이득을 쫓아가는 그리디 방식의 알고리즘이다.큐를 사용하여 회의 시작 시간을 기준으로 하나씩 뽑아내고 검사하는 과정을 거쳤다. 회
https://www.acmicpc.net/problem/2212센서들을 거리순으로 집중국의 개수인 K개의 그룹으로 분리하는 문제이다.입력으로 들어온 센서의 좌표를 오름차순으로 정렬한다.1 3 6 6 7 9 의 경우라면, 1-3-6-6-7-9의 연결 고리를 가
출처 https://www.acmicpc.net/problem/8980 문제 트럭으로 마을에서 마을까지 배송을 하는데, 가장 많이 실어나를 수 있는 상자의 수를 구하는 문제이다. 접근방법 처음에는 출발점을 기준으로 정렬하여 트럭의 현재상황을 저장하는 배열에 순서대
출처 https://www.acmicpc.net/problem/9663 문제 N*N 체스판에 N개를 놓을때 대각선이나 상하좌우 겹치지 않도록 배치할 수 있는 경우의 수를 구하는 문제이다. 접근 방법 대표적인 백트래킹 문제이다. 재귀함수 호출을 이용해 모든 경우에 대
출처 https://school.programmers.co.kr/learn/courses/30/lessons/42895 문제 N으로만 사칙연산을 활용하여 원하는 숫자를 만들때, 최소한의 갯수로 만드는 문제이다. 접근 방법 문제 조건에 N이 8 초과일 경우 -1을
https://www.acmicpc.net/problem/1520현재 위치의 높이보다 낮은 높이를 가진곳으로만 이동하여 목적지 까지 가는 경로의 수를 구하는 문제이다DFS를 기본 개념으로 사용하지만 그것만 사용하게 된다면 무수히 많은 경우의 수를 낳기 때문에
https://www.acmicpc.net/problem/1932삼각형을 내려올때 선택한 값의 최대값을 찾는 문제이다.층별로 내려올때의 최대값을 기록해주는 DP를 사용하여 해결하였다.3가지의 경우로 나누어 생각 할 수 있다.맨 왼쪽의 경우, 바로 위에것을 선택
https://www.acmicpc.net/problem/1149왼쪽 집과 겹치지 않는 색깔로 칠하되 비용을 최소로 구하는 문제이다.문제 조건을 잘 살펴보면, 2번째 집부터 N번째의 집 까지, 왼쪽 집과 색깔을 겹치지 않게 고르면 되는 문제이다.DP에 기록을
https://www.acmicpc.net/problem/1654가지고 있는 랜선들을 잘라 균일한 크기로 최소 K개의 랜선을 만들어야 할 때, 자를 수 있는 최대 길이를 구하는 문제이다.모든 경우에 대해 탐색을 진행 할 수는 없다. 이런 경우는 이분탐색을 사용
https://www.acmicpc.net/problem/1967노드를 잇는 간선의 가중치를 주고, 그 트리의 가장 긴 길이인 지름을 찾는 문제이다.Dfs알고리즘을 사용하여 어떤 리프 노드로 부터 다른 리프노드에 도달할 때 까지의 최대값을 출력하도록 하는 문제
https://www.acmicpc.net/problem/2110공유기를 c개 놓을때, 가장 멀리 배치할 수 있는 거리를 출력하는 문제이다.처음에는 이분탐색을 왜 쓰지? 하다가 배열의 인덱스 번호로 접근하여 이분탐색을 진행하려고 하다 실패하였다. 그렇게 접근하
https://www.acmicpc.net/problem/2805나무를 최대한 베지않으면서 집에 가져갈 높이가 M미터가 되도록 하는 최소한의 절단기 높이를 구하는 문제이다.전형적인 이분탐색 문제이다. 시작과 끝을 0과 가장 높은 나무로 설정한 뒤에 가운데 값으
https://school.programmers.co.kr/learn/courses/30/lessons/86971연결된 하나의 트리가 주어지고, 임의의 한 간선을 끊을 때 양쪽의 송전탑 개수 차이가 가장 작은 경우를 찾는 문제이다.완전 탐색 문제이다. 간선을
https://school.programmers.co.kr/learn/courses/30/lessons/84512모음으로만 이루어진 사전에서 몇번째인지 찾는 문제이다. 사실 왜 완전탐색인지는 잘 모르겠다.파이썬 dict나 다른 문법에 익숙치 않아서 수학적인 방
https://www.acmicpc.net/problem/1517버블소트 수행 시 SWAP이 몇번 일어났는지 세는 문제이다.처음에 그냥 곧이 곧대로 버블소트를 사용하여 몇번 스왑했는지 구하는 작성하고 너무 쉽다고 생각하고 있을 찰나 시간초과에 걸렸다.찾아보니
https://www.acmicpc.net/problem/2448별의 패턴을 유추하여 별찍기를 하는 문제이다.입력은 3 \* (2^n)의 형태로 주어진다.별 찍기의 패턴을 보면, 행은 N개로 이루어져 있고 열은 2\*n-1개로 이루어져 있다. 그리고 3의 배수
https://www.acmicpc.net/problem/1783위의 규칙을 만족하면서 움직일 수 있는 최대 값을 구하는 문제이다.이 문제 처음 해석하는데에 난항을 겪었지만, 조건을 잘 짜주는 문제였다.n == 1인 경우, 나이트는 절대 움직일 수 없다. 방문
https://school.programmers.co.kr/learn/courses/30/lessons/42860A로 구성된 기본문자열에서 Name과 같도록 만드는데, 최소한의 횟수로 움직이는 경우를 구하는 문제이다.배열로 만들어 실제로 움직여 가며 구하려고
출처
https://school.programmers.co.kr/learn/courses/30/lessons/42842갈색과 노란색 카페트가 각각 주어졌을때, 그것으로 만들 수 있는 카펫의 가로 세로 길이를 구하는 문제이다.이 방법은 완전탐색으로 풀어야 한다. ye
https://school.programmers.co.kr/learn/courses/30/lessons/81302자세한 설명은 문제 참조거리두기 규칙이 주어지고, 현재 대기실의 상황이 주어진다. 한 대기실에 참가자들이 잘 앉아있는지, 위반한 사람이 있는지를 판
https://school.programmers.co.kr/learn/courses/30/lessons/49993제한조건에 따라 스킬을 올바른 순서대로 잘 익혔는지 검사하는 문제이다.먼저, 스킬을 앞에서부터 차례로 익혔는지 알기 위해 스킬트리와 관계없는 스킬들
출처 https://www.acmicpc.net/problem/14586 문제 최소 갯수의 도미노만 사용하여 모두 넘어뜨리는 문제이다. 접근 방법 이 문제는 어떤 도미노를 건드려야 많이 무너뜨릴 수 있는지 찾는 문제이다. 각각의 도미노 블록에 대해 실행 할 때 마
출처 2023 KAKAO BLIND RECRUITMENT https://school.programmers.co.kr/learn/courses/30/lessons/150368 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42898물 웅덩이를 피해 학교에 도달할 수 있는 최단경로의 갯수를 구하는 문제이다보통의 최단경로를 구하는 방법은 오른쪽, 아래쪽으로 이동하는 경로를 고려하
https://school.programmers.co.kr/learn/courses/30/lessons/129781번 마을부터 다른 모든 마을까지의 최단거리를 구한 후, K보다 작은 거리인 마을의 갯수를 구하는 문제이다.이 문제는 Dijkstra 알고리즘을 사
https://app.codility.com/programmers/lessons/7-stacks_and_queues/fish/개인적으로 헷갈렸던 문제여서 포스팅을 작성해봅니다.강 한줄기가 존재한다고 할 때, 위와 아래로 이동하는 물고기들의 방향과 크기의 집합이