Koala - 16기

https://www.acmicpc.net/problem/19532알고리즘 분류수학브루트포스 알고리즘a, b, c, d, e, f = map(int, input().split())ans_flag = 0for i in range(-999, 1000): for j in range(-999, 1000): if a*i + b*j == c and d*i + e*j == f: ans_flag = 1 break if ans_flag: break print(i,j)문제풀이방정식을 만족하는 유일한 (x, y)의 범위가 -999 이상 999 이하의 정수로 한정되었으므로굳이 수학적으로 구하지 않고 제한 시간 ..
문제 풀이입력값 N이 제한 시간 2초에 비해 짧으므로 브루트포스로 전수조사한다.한 자리, 두 자리 수는 모두 한수이다. 인덱스 범위 초과를 조심하며 코드를 작성한다.코드n = int(input()) cnt = 0 for i in range(1, n+1):     a = str(i)     flag = True     for j in range(len(a) - 2):         if int(a[j]) - int(a[j + 1]) != int(a[j + 1]) - int(a[j + 2]):             flag = False                  if flag:         cnt += 1          print(cnt)
문제https://www.acmicpc.net/problem/14579풀이* 예제 입력을 봤을 때 공백으로 구별되는 두 수를 입력받음1. a에서 b까지, 1부터 그 숫자까지의 합을 구하고2. 합들을 모두 곱한 뒤3. 14579로 나눈 나머지값을 출력해야 함 코드 및 설명
N과 M (6)문제N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다.N개의 자연수 중에서 M개를 고른 수열고른 수열은 오름차순이어야 한다.입력첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.예제 입력 1 복사3 14 5 2예제 출력 1 복사245예제 입력 2 복사4 29 8 7 1예제 출력 2 복사1 7..
https://www.acmicpc.net/problem/2752풀이1. 세 수 중 앞의 두 수를 조건문을 이용하여 대소를 비교2. 앞의 두 수중 더 작은 수와 나머지 수의 대소를 비교3. 1, 2번의 순서에서 완료되지 않은 대소 비교의 조건 케이스를 비교해서 모든 경우를 분류코드
문제 https://www.acmicpc.net/problem/2839 Algorithm1. 정수 N을 입력을 받아서 N킬로그램을 만들 수 있을 때와 없을 때로 구분한다.2. 5킬로그램의 설탕 봉지를 가능한 많이 사용하는 것이 최소 개수가 될 수 있다.3. N의 경우는 5킬로그램의 설탕 봉지만 쓰는 경우와 3킬로그램의 설탕 봉지만 쓰는 경우 2가지 다 쓰는 경우 불가능한 경우 총 4가지가 존재한다.4. while문을 통해서 불가능한 경우와 나머지 3가지 경우를 분리하고, 5의 배수일 때를 확인하는 조건문을 통해서 최소 개수를 얻을 수 있다.5. 5의 배수가 아니라면 3킬로그램의 설탕 봉지를 사용해서 3을 뺀후 다시 반복문을 통해서 최소 개수를 얻을 수 있다.  Code#includeusing namesp..
https://www.acmicpc.net/problem/15663문제N개의 자연수가 주어지고, M개를 고른 수열을 출력한다.조건1. 중복되는 수열을 출력하면 안된다.조건2. 사전 순으로 증가하는 순서로 출력한다.풀이사전 순으로 출력해야 했기 때문에 입력받은 N들을 sort() 로 정렬했다.2가지를 고려해야 했다.1. 똑같은 조합이 나오면 출력하면 안된다.3 14 4 2위의 입력의 경우, 결과가244 # 중복이여서 안됨 위와 같이 똑같은 수열 4가 중복해서 출력되면 안된다.2. 같은 수가 여러번 나올 수는 있다.아래와 같은 입력의 경우4 29 7 9 1아래와 같이 숫자가 중복 될수는 있다. (9 9)1 71 97 17 99 19 79 9 # 이건 가능 기본적으로 백트래킹을 이용해 풀었다.1의 경우를 해결..
문제&링크https://www.acmicpc.net/problem/1895 풀이1. 전체 이미지를 확인해야 하기에 완전 탐색을 사용한다.2. 필터의 크기가 3 x 3이기에 필터의 사각형의 왼쪽 위를 기준으로 두고 반복문을 사용한다. 즉 R과 C의 크기 -2까지 반복문 사용한다.3. 해당 필터 내에 있는 모든 값을 벡터 V에 삽입한다.4. 필터에 대한 반복문이 끝날 때 벡터 V를 오름차순으로 sort하고, 중간 값인 네 번째 인덱스를 벡터 ans에 삽입한다.5. 이미지의 모든 부분에 대해 필터를 씌우고 난 후 모아진 벡터 ans에 대해서 입력한 값 T보다 큰지 작은지 판단 후 정답인 cnt를 구한다. 코드#include #include #include using namespace std;int img[41..
https://www.acmicpc.net/problem/14888풀이1. N의 범위가 크지 않으므로, 재귀함수를 적용할 수 있다.2.특정 재귀가 끝난 이후에는, 값을 특정 값으로 덮어 씌우면 오류가 발생하므로 직전 값으로 되돌릴 수 있는 로직을 구성하는 것이 중요하다.3. 이 문제의 경우, 계산 이후 연산자 배열의 수를 -1한 이후 다시 +1을 하는 것으로 적용하며, 재귀함수의 매개변수로 현재 까지의 계산 값을 넘겨줌으로써 계산이 끝나 최대값과 최소값을 갱신한 이후 다시 이전 상태로 돌아올 수 있다.제출 코드import sysn = int(input())nums = list(map(int, input().split()))sign = list(map(int, input().split()))min_val ..
문제N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다.우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다.1+2+3-4×5÷61÷2+3+4-5×61+2÷3×4-5+61÷2×3-4+5+6식의 계산은 연산자 우선 순위를 무시하..
문제 https://www.acmicpc.net/problem/5361 문제 풀이1. 각 테스트 케이스마다 필요한 부품의 수를 split을 통해 한 줄로 입력받는다.2. 각 부품들의 가격을 개수에 곱한 후 format 함수를 통해 소수점 둘째자리까지만 출력한다.3. range함수를 통해 1과 2를 처음 입력받은 n번만큼 반복한다.   Coden = int(input())sum = 0for i in range(n): a,b,c,d,e = map(float,input().split()) sum = 350.34 * a + 230.90 * b + 190.55*c + 125.30 * d + 180.90 * e print("${0:.2f}".format(sum))
KauKoala
'Koala - 16기' 카테고리의 글 목록 (4 Page)