문제지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다.지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다.첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ...,
링크텍스트 문제는 링크를 참고. 정말 간단한 문제였다. 두 배열의 요소를 각각 곱해서 더한 값이 최소가 되도록 하면 되는데 이는 결국 하나의 배열에서는 최소를 가져오고 다른 하나의 배열에서는 최대를 가져와 곱해서 더하면 끝나는 것이다. 이를 위해 처음에는 각각 배열
링크텍스트이번에 푼 문제는 숫자 정사각형 문제이다.처음 문제를 보고 어떻게 풀어야할지 조금 당황했다. 하지만 냉정하게 살펴보니 주어진 인풋의 최대값이 작아 브루트 포스로 풀 수 있겠다는 생각을 했다.풀이 방법을 생각해내고 나면 이제 풀이는 간단하다.주어진 배열에서 탐색
링크텍스트수학적으로 계산만 하면 되는 문제라 간단하게 풀린것 같다.문제에서 강토가 기타줄을 사는 경우의 수는 총 3가지이다.가장 싼 가격으로 낱개로만 사는 것가장 싼 가격의 묶음으로 사야하는 개수에서 6을 나눈 몫+1개를 사는 것가장 싼 가격의 묶음으로 사야하는 개수에
링크텍스트취약하다고 생각되는 문자열 문제이다.문자열 문제는 내가 생각하기에 내가 문제에 대한 접근방법을 잘 몰라서 취약하다고 생각된다.처음에 이 문제를 접했을 때 길이의 차만큼 모든 알파벳을 앞뒤로 대입해가면서 풀 생각을 했다.그런데 이렇게 푸는 것이 너무 비효율적인
링크텍스트처음에는 그냥 생각없이 입력받은 A를 정렬하고 P배열의 값을 index로 치환해주는 식으로 단순하게 풀이를 했다.저렇게 풀었는데 정답이 나올리가...당연히 틀렸다.무엇이 문제인지 생각해봤는데 결국 핵심은 Ai = Bj인 것이고 j=Pi라는 점이다.문제에 나온
링크텍스트트리 문제다. 그 중 2진 트리 순회하는 문제였는데 많이 헷갈렸다.트리를 전위 순회한 결과와 중위 순회한 결과가 주어지는데 전위 순회한 결과에서 제일 처음으로 나오는 숫자가 전체 트리의 루트이고, 그 다음 결과는 좌측 서브트리의 루트이다.이런 식으로 진행이 된
링크텍스트처음 문제를 보았을 때는 그냥 단순하게 연산 1,2,3을 if문을 활용하여 입력받은 수가 1이 될 때까지 반복하는 방식으로 풀이를 했다.당연히 틀렸다.무언가 익숙한 방식으로 틀리는데...저번에도 이런 문제를 비슷한 방식으로 풀다가 답은 답대로 안나오고 코드는
링크텍스트풀긴 어제 풀었지만 시간이 늦어 오늘 올린다.예전에 알고리즘 스터디를 할 때 한 번 풀었던 문제였는데 다시보니 기억이 안나 복습의 중요성을 느끼는 문제였다.이 문제는 dp로 푸는 거다.라는 기억 하나를 의존해서 풀었다.처음 문제를 풀때는 시작점부터 마지막 계단
링크텍스트간단한 수열을 만드는 문제였다.그 중 경우의 수와 관련된 문제였고 입력에 대한 모든 경우를 처리해야는데 경우의 수가 많아질 수록 복잡해지는 것 같아 조금 헤맸다.경우의 수 문제를 풀 때 가지치기 형태로 풀었던 것을 생각하여 트리처럼 생각하도록 했고 트리 탐색에
링크텍스트15649 문제에 조건이 추가된 문제이다.그래서 기존의 소스코드에 조건을 추가하여 작성하는 것을 기본으로 했다.이번 문제의 핵심은시작값보다 작은 값을 선택할 수 없다.는 것이다.만약 2를 방문했다면 1을 방문할 수 없다.이 점을 알았다면 빠르게 해결할 수 있다
링크텍스트1,2,3으로 정해진 숫자를 구하는 문제이다.오랜만에 쉽다고 해야하나 간단하게 풀리는 문제를 만나 편했다.4는 문제 예시로 있으니 넘어가고 5를 예시로 하자면5는 1+4,2+3,3+2,4+1일 수 있다.즉 4를 구하는 경우의 수 + 3을 구하는 경우의 수 +
링크텍스트너무 복잡하게 생각해서 손해를 본 문제였다.사람들이 한 대의 ATM을 이용하는데 걸린 시간이 최소가 되도록 해야 하기때문에 그리드로 풀 생각을 했다.그런데 중간에 쓸데 없는 생각을 한 번 더해 그리드가 아닌 다른 방법으로 풀었다.사람이 있고 사람마다 사용하는
링크텍스트이 문제 또한 15649의 파생 문제이다.조건에서 중복이 가능하다 했으므로 15649의 코드에서 방문체크하는 부분을 주석으로 처리하면 끝이다.
링크텍스트문제를 보고 가장 먼저 한 것은 2x1, 2x2, 2x3, 2x4에 대한 경우의 수를 헤아려 보는 것이었다.그 결과 2x1 = 1, 2x2 = 2, 2x3 = 3, 2x4 = 5 였다. 이것만으로는 수열에 대한 확신을 가지지 못해 2x5에 대해서도 해보았다.2
링크텍스트한 동안 dp 문제만 풀어서 그런지 쉽게 감을 잡을 수 있었다. 여태 해온 방식대로 F(1)부터 하나씩 증가시키며 규칙을 찾으려고 했고 결과F(n) = F(n-2)+F(n-3)위와 같은 점화식을 찾았다. 점화식만 찾았다면 이후는 간단하다. 끝
링크텍스트'스택 수열'문제다.문제 이름에서 알 수 있듯이 스택을 이용하면 쉽게 풀어낼 수 있다.문제를 푸는데 큐와 스택, 벡터를 사용했다.입력받은 숫자를 큐에 저장하고, 반복문을 돌면서 스택에 1부터 숫자를 쌓는다. 쌓으면서 현재 스택의 top과 큐의 front를 비교
링크텍스트큐를 활용한 문제였다.하지만 c++ stl에서 제공해주는 큐에서는 iterator를 지원해주지 않아 deque를 썼다.문제를 풀 때 제일 먼저 생각한 것은 큐에서 최대 우선순위와 최소 우선순위를 찾아야한다는 것이다.또한 큐에 저장할 때 pair(우선순위, in
링크텍스트간단한 문제였다.0으로 시작할 수 없고 11이 나올 수 없기 때문에 간단하게 풀이 할 수 있었던것 같다.F(1) = 1, F(2) = 1, F(3) = 2 ... 이런 식으로 하나씩 증가해서 규칙을 찾을 수 있다.n==4 일 때, F(3)일 때 경우의 수 10
다이나믹 프로그래밍 방식을 풀어야하는 것은 금방 알 수 있었다.그래서 n==2부터 차근차근 규칙을 찾아나가며 점화식을 만들어 코드를 작성했지만 풀이에 실패했다. 우선 다른 문제를 풀며 실력을 키워 다시 도전해야겠다.실패한 코드를 남기기 위해 작성한다.
dp 문제이며 n==5까지 해보면 금방 규칙을 찾을 수 있는 간단한 문제이다.F(n) = F(n-1)+F(n-2)
링크텍스트간단한 수학 문제였다.핵심은 지민이와 한수가 만나는 위치를 찾는 것이다.지민이와 한수가 각각 다음 라운드에서 가지게 되는 순번은 현재 각자가 가진 번호가 a,b라고 할 때, 다음 라운드에서는 (a+1)/2, (b+1)/2가 된다.(a+1)/2, (b+1)/2
https://www.acmicpc.net/problem/1406처음 문제를 보았을 때는 단순하게 이 문제는 링크드리스트를 활용하여 입력받은 명령대로 처리하면 되는 간단한 문제인줄 알았다.그래서 링크드리스트를 이용해 간단하게 코드를 작성했고 바로 채점을 해보았
https://www.acmicpc.net/problem/148892차원 배열 전체 탐색하여 원하는 결과를 찾는 문제였다.전체 n명의 사람을 2팀으로 나누어 만들 수 있는 경우를 구하여 두 팀의 능력치의 합의 최소를 구하면 되는 문제이다.문제를 처음 보고 든
https://www.acmicpc.net/problem/11053문제를 처음 보고 든 생각은 어라 이거 날먹 가능한 문제 아니야?였다.하지만 어림도 없지!!그렇게 쉽게 문제가 나올리가 없다.처음엔 수열이 아니라 부분 집합이라 생각하여 set으로 만들어 set
https://www.acmicpc.net/problem/11724오랜만의 그래프 문제이다.주어진 그래프의 연결 요소를 찾는 문제인데 연결요소가 멀까위와 같은 그림이 연결 요소이다.연결 요소가 될 조건은연결 요소에 속한 모든 정점을 연결하는 경로가 있어야 한다
https://www.acmicpc.net/problem/1931이번 문제는 회의실 시간표를 짜는 문제이다.예전에 카카오 코딩테스트에 이러한 비슷한 문제가 나온적 있었는데...물론 이 문제보단 어려웠지만 그 때는 감도 잡지 못하던걸 이번엔 그리디로 풀면 되겠다
https://www.acmicpc.net/problem/11729오랜만에 보는 하노이탑 문제라 잘 기억이 안나 구글에 검색해 기본적인 원리를 보고 코드를 작성했다. ㅠㅠ하노이탑의 핵심은 n개의 원판이 있을 때, n번째 원판이 가장 끝 자리로 가기 위해서는 n
https://www.acmicpc.net/problem/1912이어서 푼 문제는 연속합 문제인데 처음에는 2중 for문을 활용해서 풀면 될줄 알았다.그런데 시간이 1초?!2중 for문을 사용하면 n^2이라 시간초과가 나겠구나라는 생각을 했고 dp로 풀어야한다
https://www.acmicpc.net/problem/11047이번 문제는 많이 풀어 본 문제 중 하나이다.거스름돈의 동전 갯수를 출력하는 것과 같기 때문이다.반복문 연습문제로도 자주 풀었던 문제였던 만큼 금방 풀 수 있었다.
https://www.acmicpc.net/problem/4948베르트랑 공준??? 그게 뭔데???다행히 베르트랑 공준이 무엇인지 몰라도 문제는 풀 수 있었다.내용은 문제에 있으니 생략하고 대충 범위 내의 소수의 갯수를 구하는 문제이다.따라서 "에라토스테네스의
https://www.acmicpc.net/problem/4963 예전에 풀었던 백준 "유기농 배추" 문제의 확장판이다. 참고 https://www.acmicpc.net/problem/1012 이전에 풀었던 유기농 배추 문제와 차이점은 대각선으로 연결된 곳도 하나의 영역으로 포함된다는 점이다. 따라서 그 부분만 위의 문제에서 조정해주면 쉽게 해결이 ...
https://www.acmicpc.net/problem/7562체스판에서 나이트가 이동할 수 있는 영역의 경우의 수를 찾는 문제인 것 같다.문제의 접근방식에 대해 이제 나름 경험이 쌓였는지 이번 문제는 쉽게 파악할 수 있었다.체스판은 2차원배열과 같고 체스말
https://www.acmicpc.net/problem/2644 이
https://www.acmicpc.net/problem/1541처음 문제를 풀때는 스택을 이용하려고 했다. 하지만 스택으로는 +,-를 구분해서 최소를 구하는게 매우 복잡하고 힘들었다.그래서 다른 방법을 찾아보려고 했고 최소를 얻기 위해서는 아래와 같은 사실을
https://www.acmicpc.net/problem/11725트리 문제다.문제에서 1이 트리의 root로 고정되어 있기때문에 1을 시작으로 dfs를 하면 쉽게 풀릴것이라 예상했다.입력으로 받은 두 정점들을 인접행렬로 구현하여 dfs 방법을 통해 부모들을
https://www.acmicpc.net/problem/10971 외판원 순회2 TSP라고도 불리는 아주 유명한 문제다. 최초 생각은 dfs를 통해 그래프를 순회하면서 만약 경로가 끊어져있다면 그 경로는 건너뛰고 다른 경로를 검사하는 방식으로 구현하려고 했다.
https://www.acmicpc.net/problem/1182어제 본 카카오커머스 채용 코딩 테스트에서 나온 문제의 기본이다.어제 본 코딩 테스트에 대해 자세히 이야기할 수는 없지만 대충 부분 수열을 구해 문제의 조건에 맞게 답을 구하는 문제이다.어제 문제
https://www.acmicpc.net/problem/9465문제의 조건은 다음과 같다.떼어낸 스티커의 상하좌우의 스티커를 이어서 뗄 수 없다.떼어낸 스티커의 점수의 총합이 최대가 되어야 한다.떼어낸 스티커의 상하좌우를 연달아 뗄 수 없다면 일반적으로 한칸
https://www.acmicpc.net/problem/1107완전탐색 문제였다.입력받은 찾아가야할 채널에서 만들 수 있는 가장 가까운 수를 찾아 ++ 또는 -- 해주는 방식으로 구현하려고 했다.그러기 위해서는 찾는 채널의 각 자릿수를 뽑아 고장나지 않은 리
https://www.acmicpc.net/problem/16236
https://www.acmicpc.net/problem/14502연구소 문제다. 바이러스가 퍼지는 것연구소 문제다. 바이러스가 퍼지는 것은 bfs로 처리할 수 있다.문제에서 벽을 3개를 치고 바이러스가 전파되었을 때 안전지대의 개수를 구하는 것인데 하나하나
https://www.acmicpc.net/problem/3190 뱀
https://www.acmicpc.net/problem/7662 이중 우선 순위 큐
https://www.acmicpc.net/problem/7576 토마토
https://www.acmicpc.net/problem/5430 AC
https://www.acmicpc.net/problem/10026대충 생각대로 작성했는데 정답이었다. 효율은...크게 경우의 수가 2개로 나뉜다.적록색약인 사람아닌 사람이 두가지 경우에 대해 구현을 해야는데 type으로 나눠서 구현을 했다. 그래서 입력 배열
https://www.acmicpc.net/problem/9663 N-Queen
https://www.acmicpc.net/problem/1753 최단경로
https://www.acmicpc.net/problem/9251 LCS
https://www.acmicpc.net/problem/14503 로봇 청소기
https://www.acmicpc.net/problem/1759 암호만들기
https://www.acmicpc.net/problem/15686 치킨 배달
https://www.acmicpc.net/problem/14500 테트로미노
https://www.acmicpc.net/problem/1916다익스트라 알고리즘으로 풀이하면 된다.자세한 내용은 https://velog.io/@estry/%EB%B0%B1%EC%A4%80-1753-%ED%92%80%EC%9D%B4참고
https://www.acmicpc.net/problem/2263 트리의 순회
https://www.acmicpc.net/problem/1149 RGB 거리
https://www.acmicpc.net/problem/1991 트리순회
https://www.acmicpc.net/problem/2206 벽 부수고 이동하기
https://www.acmicpc.net/problem/1629 곱셈
https://www.acmicpc.net/problem/21608 상어초등학교
https://www.acmicpc.net/problem/11404 플로이드
https://www.acmicpc.net/problem/1504특정한 최단 경로를 찾는 문제다.출발 노드가 1번으로 고정되어 있고, 도착 노드도 n으로 고정되어 있기때문에 다익스트라 알고리즘을 이용했다.다익스트라 알고리즘의 설명과 코드는 아래 링크를 참고한다
https://www.acmicpc.net/problem/1238 파티
https://www.acmicpc.net/problem/17144 미세먼지 안녕!
https://www.acmicpc.net/problem/2096 내려가기
https://www.acmicpc.net/problem/1967 트리의 지름
https://www.acmicpc.net/problem/13549문제의 핵심은 수빈이가 X에 있다면 수빈이가 X-1, X+1의 위치로 가는데 드는 비용은 1이고, 2\*X의 위치로 가는데 드는 비용은 0이라는 점이다.이를 그래프로 표현해서 다익스트라 알고리즘
https://www.acmicpc.net/problem/11660 구간 합 구하기 5
https://www.acmicpc.net/problem/15663 n과 m(9)
https://www.acmicpc.net/problem/5639 이진탐색트리
https://www.acmicpc.net/problem/26380 치즈
https://www.acmicpc.net/problem/11779 최소비용 구하기 2
https://www.acmicpc.net/problem/14938 서강그라운드
https://www.acmicpc.net/problem/1976 여행 가자
https://www.acmicpc.net/problem/1939 중량 제한 / 추후 이분탐색 방법 추가 예정
https://www.acmicpc.net/problem/1013 Contact (정규표현식)
https://www.acmicpc.net/problem/2504 괄호의 값
https://www.acmicpc.net/problem/10942팰린드롬이란 문자열을 뒤집었을 떄 원본 문자열과 동일한 문자열을 의미한다.
https://www.acmicpc.net/problem/1786 KMP 알고리즘
https://www.acmicpc.net/problem/1062 가르침
https://www.acmicpc.net/problem/11000 강의실 배정
https://www.acmicpc.net/problem/1202 보석 도둑(그리디)
https://www.acmicpc.net/problem/2437 저울(그리드)
https://www.acmicpc.net/problem/2109 순회강연
단어 수학 https://www.acmicpc.net/problem/1339
https://www.acmicpc.net/problem/16288 Passport Control
원재의 메모리 복구하기
https://www.acmicpc.net/problem/10775 공항(그리드 + 유니온-파인드)
https://www.acmicpc.net/problem/1052 물병
https://www.acmicpc.net/problem/15684 사다리 조작
https://www.acmicpc.net/problem/2493 탑
https://www.acmicpc.net/problem/1208 부분 수열의 합2
퇴사 2 https://www.acmicpc.net/problem/14501
https://www.acmicpc.net/problem/1662 압축
https://www.acmicpc.net/problem/1987 알파벳
https://www.acmicpc.net/problem/15683 감시
https://www.acmicpc.net/problem/14891 톱니바퀴
https://www.acmicpc.net/problem/17281 야구
https://www.acmicpc.net/problem/21609 상어 중학교
https://www.acmicpc.net/problem/12852 1로 만들기2
https://www.acmicpc.net/problem/1600 말이 되고 싶은 원숭이
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf 프로세서 연결하기
사람 네트워크2
https://www.acmicpc.net/problem/17472 다리 만들기 2
https://www.acmicpc.net/problem/4485 녹색 옷 입은 애가 젤다지?
https://www.acmicpc.net/problem/1194 달이 차오른다, 가자.
https://www.acmicpc.net/problem/1707 이분그래프
활주로 건설