문제 https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 문제 코드 ax,bx,cx,cnt=1,1,1,1 a,b,c=map(int,input().split()) while True: if a==ax and b==bx and c==cx: break ax+=1 bx+=1 cx+=1 cnt+=1 if ax>=16: ax-=15 if bx>=29: bx-=28 if cx>=20: cx-=19 print(cnt) 문제 풀이 브루트포스 문제이다. a,b,c에 입력..
분류 전체보기
문제 출처 : https://www.acmicpc.net/problem/1411 [1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복 www.acmicpc.net](https://www.acmicpc.net/problem/1411) 문제 만약 어떤 단어A를 숌스럽게 바꿔서 또다른 단어 B로 만든다면, 그 단어는 비슷한 단어라고 한다. 어떤 단어를 숌스럽게 바꾼다는 말은 단어 A에 등장하는 모든 알파벳을 다른 알파벳으로 바꾼다는 소리다. 그리고, 단어에 등장하는 알파벳의 순서는 바뀌지 않는다. 두 개의 다른 알파벳을 하나의 알파벳으로..

문제 https://www.acmicpc.net/problem/20499 아무래도 우리 팀 다리우스가 고수인 것 같다. 그의 K/D/A를 보고 그가 「진짜」인지 판별해 보자. K+A < D이거나, D = 0이면 그는 「가짜」이고, 그렇지 않으면 「진짜」이다. 문제 코드 문제 풀이 int형 변수 k,d,a 를 scanf를 통해 입력받고 if문과 else문을 사용하여 진짜인지, 가짜인지 구분하는 조건을 작성 후 각각의 경우에 맞게 문구가 출력되도록 함. c++언어로 하려고 했는데 c언어로 하는게 더 간단할 것 같아 c언어로 함.

문제 https://www.acmicpc.net/problem/5361 5361번: 전투 드로이드 가격 각 테스트 케이스 마다, 입력으로 주어진 부품을 모두 구매하는데 필요한 비용을 소수점 둘째 자리까지 출력한다. 달러 표시도 출력해야 한다. 정답은 1억보다 작거나 같다. www.acmicpc.net 문제 설명 망가진 전투 드로이드를 고치기위해 필요한 블래스터 라이플,시각 센서 청각 센서,팔,다리 의 개수를 입력받아 각 테스트 케이스 마다, 입력으로 주어진 부품을 모두 구매하는데 필요한 비용을 출력하는 문제이다. 소수점 둘째 까지만 출력해야하고 달러 표시도 출력해야 한다. 코드 문제 풀이 1.테스트 케이스의 숫자를 N으로 입력받는다 2.각 부품의 가격들을 리스트로 정해놓는다 3.각 부품의 개수들의 입력을..

문제: 2839번: 설탕 배달 (acmicpc.net) 코드 코드 설명 먼저, n킬로그램의 설탕 무게를 입력 받는다. 최대한 많은 수의 5킬로그램의 봉지를 만들고 나머지를 3킬로그램의 봉지로 만드는 것이 최소 개수를 만드는 방법이므로, while문을 통해 n을 5로 나누어서 나머지가 0이면 봉지의 개수를 n/5 값을 현재 봉지의 개수에서 추가를 하고 그 즉시 while문을 탈출해서 봉지의 개수를 출력하게 만들거나, 나머지가 0이 아닌 경우는 지속적으로 n에서 3을 빼주는 것을 반복하면서 봉지의 개수를 1씩 추가하고 n이 3이상일 때만 반복하게 만들어주었다. while문을 탈출 후 n은 0, 1, 2의 수 중 하나를 가지게 되는데, n이 0이 아니면, 정확하게 봉지에 나누어서 담을 수 없으므로, -1을 출..

문제풀이 숫자 하나에 대응하는 판별을 위해 bool 타입 함수를 만든다. 함수는 단순히 3자리수이고 각자리수의 간격이 같은지 확인하면 되는 단순한 함수이다. 이떄 두자리수는 간격이 하나이기 때문에 한수라고 볼 수 있다. 존재하는 모든 수에 대하여 함수를 수행하며 함수는 각 자리수를 비교하는 수행을 하여 O(n) 복잡도(함수 내부 복잡도 약 O(3) 정수배 관용 )를 가진다. #include using namespace std; bool GAB(int A){ int num[3]; if(A < 100) return true; //두자리 수라면 간격이 하나이기때문에 한수이다. for(int i = 0 ; i < 3 ; i++){ num[i] = A % 10; A /= 10; } if( num[2]-num[1]..
문제링크 https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net 코드 import sys n = int(input()) result = [] def isgood(arr): for i in range(1,len(arr)//2+1): if arr[-i:]==arr[-i*2:-i]:return False return True def dfs(): global result if len(result)==n: print(''.join(map(str,result))) sys.e..

풀이 백트래킹 문제이다. 먼저 입력값으로 주어지는 배열의 크기 N과 부분수열의 합 S를 입력는다. 배열 arr[20]에 N개의 원소를 입력받는다. 재귀 함수 dfs를 구현합니다. 이 함수는 현재 인덱스(idx)와 현재까지의 합(sum)을 인자로 받는다. 재귀 함수 dfs의 동작은 다음과 같다: 현재 인덱스의 원소를 합에 더해줍니다: sum += arr[idx]; 만약 합이 S와 같다면, 카운트를 증가시킵니다: if (sum == S) { cnt++; } 현재 인덱스의 다음 원소부터 탐색하기 위해 for문을 사용하여 재귀 호출합니다: for (int i = idx + 1; i < N; i++) { dfs(i, sum); } 모든 원소에 대해 dfs를 호출하여 부분수열의 합이 S와 같은 경우의 수를 구한다...

https://www.acmicpc.net/problem/2057 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 문제 분석 난이도 실버5 분류 수학, 브루트포스 들어가기 전에 숫자의 크기를 보고 대략적인 감을 잡을 수 있다면 정말 편하다. 문제 문제 풀이 풀이 입력 제한의 최댓값보다 20!이 더 큰 수이다. 즉 0~20 총 21가지에 대해 포함 / 비포함으로 탐색을 하면 된다. 그럴 경우 2^21가지 경우의 수로 200만정도로 충분히 브루트 포스로 풀어볼 수 있다. 소스코드 def bf(n..
문제 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 설명 장부에 K번만큼 숫자를 쓰거나 지우는데, 입력받는 숫자가 0이면 가장 최근 숫자를 지우고 0이 아니라면 해당 수를 쓴다. 최종적으로 0이 아닌 숫자들의 합을 구하면 된다. 코드 #include #include using namespace std; int main() { int K; cin >> K; int total = 0; stack accoun..

문제 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 풀이 방법 n과 m이 50보다 작거나 같은 자연수이므로 완전 탐색으로 가능하다 생각하여 삼중 for문을 이용하여 풀이했습니다. n x m에서 나올 수 있는 가장 큰 정사각형부터 감소하는 방향으로 for문을 작성하고, 왼쪽 위의 꼭짓점이 될 수 있는 i, j를 이중 for문으로 모두 탐색합니다. 0,0 ([i][j])부터 변의 길이가 s인 정사각형의 꼭짓점을 비교하여 모두 같다면 정사각형의 크..
문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 알고리즘 분류 수학 다이나믹 프로그래밍 그리드 알고리즘 문제 설명 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로..