
문제 : https://www.acmicpc.net/problem/17298이중 for문을 사용해서 풀려고 했지만, 시간복잡도가 O(N^2)이라서 불가능했다. 따라서 스택을 사용해 <- 순서로 비교했다. s가 emtpy까지 while문을 돌리면서, s.

문제 : https://www.acmicpc.net/problem/10799( ) 일 경우에는 레이저를 쏘고, ( )일 경우에는 막대기를 생성한다. 생성된 막대기는 레이저를 만나면 잘라진다. 먼저 '(' 경우에는, stack에 값을 push한다. 그리고

문제 : https://www.acmicpc.net/problem/4396초기 지뢰게임 세팅을 위한 입력을 하고, 직접 지뢰게임을 하면서 x입력에는 주변 8자리에 지뢰가 몇 개있는지 출력한다. 그래서 먼저 arr1에 지뢰게임 세팅하고, arr2 값을 모두 .으

문제 : https://www.acmicpc.net/problem/5347

문제 : https://www.acmicpc.net/problem/2578아이디어 코드25개의 숫자를 각 빙고 자리에 넣은 뒤, 하나씩 소거해 나간다. 따라서 빙고판에 해당하는 배열 하나와, 소거할 때마다 값을 1로 바꿔주는 또다른 배열 하나를 만들었다. 그런

문제 : https://www.acmicpc.net/problem/10825하나의 그릇에 이름, 국어, 영어, 수학 4가지의 정보들이 담겨있어야 한다. 따라서 모든 정보를 하나로 묶을 수 있는 구조체를 사용했다. 구조체와 벡터를 사용해서 각각의 이름과 점수들을

문제 : https://www.acmicpc.net/problem/3036최대공약수를 사용해서 첫 번째 링의 반지름과 나머지 링의 반지름을 나눈 값을 기약분수로 나타내면 된다.최대공약수를 구하는 유클리드 호제법만 알고 있으면 쉽게 문제를 풀 수 있다.

문제 : https://www.acmicpc.net/problem/21919초기코드에서 소수를 구하는 방식으로 제출했을 때, 시간초과 오류가 떴다. 따라서 모든 소수를 찾기 위해 소수를 찾는 것이 아닌 합성수를 찾아 제거하는 방식인 에라토스테네스의 체의 방식을

문제 : https://www.acmicpc.net/problem/2493문제의 흐름이나 구조가 오큰수 문제랑 비슷했다. 값을 입력받고, 그 값보다 큰 수를 찾는다. 하지만 이 문제에서는 큰 수가 아닌 큰 수의 위치를 구하는 것이기 때문에, stack을 만들

문제 : https://www.acmicpc.net/problem/5800반의 수와 각 반의 학생 수, 학생들의 수학 점수를 차례대로 입력 받는다. 그리고 최대 점수, 최소 점수, 가장 큰 인접한 점수 차이를 알아야 하기 때문에, 수학 점수를 담은 배열을 내림

문제 : https://www.acmicpc.net/problem/2193문제를 보면서 N의 값에 따른 이친수의 개수가 규칙적으로 증가할 것이라고 생각했다. 따라서 N의 값에 따른 이친수의 개수를 직접 구했다. 구해보면서 f(x) = f(x-1) + f(x-2

문제 : https://www.acmicpc.net/problem/5597먼저 배열에 1번부터 30번까지 저장했다. 그런 다음 28개 번호를 입력받고, 입력 받은 번호에 해당하는 배열의 값을 0으로 바꿨다.마지막으로 배열의 값이 0이 아닌 수를 출력했다.배열의

문제 : https://www.acmicpc.net/problem/4796총 V일 휴가 중에서, 연속하는 P일 중, L일만 사용할 수 있다. L,P,V 순으로 예시를 들어보자면 (5,8,20) 일 때는 8일차 중 5일, 16일 차 중 5+5 = 10일, 20일

문제 : https://www.acmicpc.net/problem/5618n이 2 또는 3이기 때문에, 먼저 2와 3일 때로 구분한다. 2일 때는 a,b 두 개 입력받고 max(a,b)까지 i 돌려서 공약수를 찾는다. 3일 때는 a,b,c 세 개 입력받고, m

문제 : https://www.acmicpc.net/problem/2839더 적은 개수의 봉지로 배달하려면, 5킬로그램 봉지를 최대한 많이 사용해야한다. 따라서 n의 값을 계속 3으로 빼주면서, n % 5 == 0가 되면 그 값만큼 더하고, 반복문을 끝낸다.

문제 : https://www.acmicpc.net/problem/1448삼각형이 되기 위한 조건은 가장 긴 변의 길이가 다른 두 변의 합보다 작아야 한다. 세 변의 길이의 합의 최댓값을 구하기 위해 먼저 변의 길이를 입력받고, 내림차순으로 정렬한다. 가장 앞

문제 : https://www.acmicpc.net/problem/11659누적합의 대표적인 문제이다. += 배열. 하는 것이 아닌 prefixi = prefixi-1 + arri를 사용해서 i번째 위치까지의 누적합을 저장한다. 그리고 n1부터 n2까지의 범위

문제 : https://www.acmicpc.net/problem/11660문제를 처음 봤을 때, 이차원 배열에 대한 누적합 문제라고 생각했다. 일차원 배열과는 다르게 조금 복잡해보여서 직접 표를 그리고 지워가면서 공식을 도출해냈다. 누적합을 구하는 방법은 p

문제 : https://www.acmicpc.net/problem/6603로또의 수가 주어지고, 그 수 중에서 6가지를 뽑는 경우의 수를 구하는 문제다. 문제를 읽으면서 콤비네이션 개념을 사용해야겠다고는 생각했지만 어떤식으로 해야할지 잘 몰랐다. 그래서 재귀

문제 : https://www.acmicpc.net/problem/10819n개의 정수로 만들 수 있는 모든 결과값을 do-while문과 next_permutation함수를 사용해서 구해본다. next_permutation함수를 사용하기전에 sort통해 정렬하

문제 : https://www.acmicpc.net/problem/14889먼저, 스타트팀과 링크팀 두개로 나뉜다는 것에 집중했다. 그리고 n = 4일 때 0이 2개팀 1이 2개팀으로 나눈다고 가정하고 next_permutation 함수를 돌렸다. 그렇게 되면

문제 : https://www.acmicpc.net/problem/18429STL을 사용해서 풀어봤지만 오답이라고 나와서 한창동안 고민했던 것 같다. 그 결과 중복이 있을 경우 무시된다는 사실을 깨닫게 되었고 직접 함수를 구현했다. 먼저 총 n개의 키트를 의미

문제 : https://www.acmicpc.net/problem/148884가지 연산자를 구분해서 어딘가에 담아야한다고 생각했다. 이 연산자를 가지고 순열을 구해야되는데 그러기 위해서는(STL 사용) 한 곳에 있어야하기 때문에. 여러 가지 방법을 고민해봤는데

문제 : https://www.acmicpc.net/problem/2503생각하는 숫자의 범위가 123 ~ 987로 작아서 그냥 모든 경우를 다 비교해봤다. 생각하는 숫자 i범위와ques의 100의 자리수, 10의 자리수, 1의 자리수를 각각 변수로 구했다.

문제 : https://www.acmicpc.net/problem/164572n개의 스킬 중에서 n개의 스킬을 뽑아 해결할 수 있는 최대 퀘스트를 구해야한다. 그리고 각 퀘스트당 k개의 스킬이 필요하기 때문에 각 퀘스트에 해당하는 스킬을 입력하기 위해 vect

문제 : https://www.acmicpc.net/problem/18111우선 최소 시간과 최대 높이를 구하는 것이기 때문에 최대 높이인 256까지 for문을 돌렸다. 그리고 for문 높이와 블럭이 채워져있는 높이를 비교하면서 for문 높이가 더 큰 경우는

문제 : https://www.acmicpc.net/problem/3980각 포지션에 대해서 가장 높은 능력치를 가진 선수를 뽑아야한다. 문제를 보면서 백트래킹과 DFS 방법이 떠올랐다. 그래서 일단 11명 포지션에 대해 11명 선수들의 각 능력치를 입력받았다

문제 : https://www.acmicpc.net/problem/15686도시의 치킨 거리의 최솟값과 치킨집을 최대 M개 고른다. 이 두 개의 키워드를 중심으로 문제를 풀었다. 먼저 치킨 거리의 최솟값을 구하기 위해서는 배열로 입력받는 값 중에서 집과 치킨집

문제 : https://www.acmicpc.net/problem/2580전체 스도쿠판의 가로 세로줄에 있는 각 숫자가 겹치면 안되고 9칸의 정사각형 내에서도 겹치면 안된다. 그리고 우리가 확인되어야 하는 곳은 0으로 입력된다. 그렇다면 0으로 입력된 곳에만

문제 : https://www.acmicpc.net/problem/9663퀸이 공격할 수 있는 경우는 같은 행이나 열에 있거나 대각선에 있는 경우다. N x N 크기의 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이므로 각 행에 퀸을 한 개씩 놓으려고

문제 : https://www.acmicpc.net/problem/2293먼저 입력받을 코인의 가치 배열과 k원을 만들 수 있는 경우의 수가 담긴 dp 배열을 생성했다. 그런 다음 dp배열에 t - coinj의 경우의 수를 계속해서 더해줬다. 예를 들어서 k

문제 : https://www.acmicpc.net/problem/9084동전 1 문제를 풀었다면 다소 쉽게 문제를 풀 수 있다. 동전의 종류가 주어지고 그 동전들로 주어진 금액을 만들 수 있는 총 경우의 수를 구하는 문제이다. 동전 1 문제 알고리즘과 똑같이

문제 : https://www.acmicpc.net/problem/1932삼각형의 크기를 입력받고 그 크기만큼 정수 삼각형을 입력받는다. 그리고 맨 위층부터 시작해서 왼쪽 아래 혹은 오른쪽 아래를 선택하면서 최종 맨 아래층으로 내려올 때까지의 선택된 수 합이

문제 : https://www.acmicpc.net/problem/11726n = 1,2,3,4,5일 때의 방법을 모두 구해보면서 점화식을 찾았다. n = k일 때의 방법의 수는 k-1번째와 k-2번째의 방법의 수를 더하면 구해진다. 문제가 2xn 크기의 직사