검색결과 리스트
Project/algorithm에 해당되는 글 5건
- 2015.06.07 변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기
- 2014.06.02 소수 찾아내는 알고리즘
- 2014.05.25 부분 구간의 합 구하기
- 2014.05.21 케이크 나누기
- 2014.05.19 linear
글
변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기
#include <stdio.h>
#include <iostream>
using namespace std;
//변수값을 스왑할때, *붙여서 주소값을 전달함 (*을 붙인다 -> 값이 아니라 주소를 전달함)
void swap(int *a, int *b)
{
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
//배열의 특정 원소값을 변경, c의 경우 인자를 배열로 ㅂ다을 경우 값이 아니라 주소가 전달되므로 *를 안붙여도됨
void swap_arr(int arr[], int i, int j)
{
int temp = 0;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
int main() {
int min, max;
int num1, num2;
int array_temp[10000] = { 0, };
array_temp[0] = 3;
array_temp[7] = 333;
printf("변경전 : %d, %d\n", array_temp[0], array_temp[7]);
swap_arr(array_temp, 0, 7);
printf("변경후 : %d, %d\n", array_temp[0], array_temp[7]);
cout << "input num1, num2 : " << endl;
cin >> num1>>num2;
swap(num1, num2);
cout << num1 << " " << num2 << endl;
return 0;
}
'Project > algorithm' 카테고리의 다른 글
소수 찾아내는 알고리즘 (0) | 2014.06.02 |
---|---|
부분 구간의 합 구하기 (0) | 2014.05.25 |
케이크 나누기 (0) | 2014.05.21 |
linear (0) | 2014.05.19 |
설정
트랙백
댓글
글
소수 찾아내는 알고리즘
소수를 찾아내는 알고리즘에는 크게 두가지 방법이 있다.
1. 무식하게 약수의 갯수를 구하는 방법
2. 에라토스테네스의 체를 이용하여 푸는 방법
에라토스테네스의 체를 이용하여 푸는 방법의 원리는 다음과 같다.
- 2부터 n까지의 수를 쭉 적고, 목록에서 지워지지 않는 수들을 순회함, 수의 배수를 지우기를 반복하다가
그 다음으로는 3의 배수를 모두 지우고, 5의 배수를 지우고, 7의 배수를 지우고... 쭉 제거를 하다 보면
남는 수들이 있는데 이를 체로 거른 뒤 남는 수들이 모두 결국 소수가 된다.
(그림 출처 : http://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4)
체를 이용하여 연산할 경우 부하가 확 줄어드니 한번쯤 적용해서 풀어보는 것도 좋을 것 같다.
'Project > algorithm' 카테고리의 다른 글
변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기 (0) | 2015.06.07 |
---|---|
부분 구간의 합 구하기 (0) | 2014.05.25 |
케이크 나누기 (0) | 2014.05.21 |
linear (0) | 2014.05.19 |
설정
트랙백
댓글
글
부분 구간의 합 구하기
부분 구간은 연습 구간의 합을 구해야 되는 문제일 경우
1. 배열 이용해서 풀이 가능
2. 무슨소리인고 하면,
arr -2 9 2 -6 7 -7 5
sum 0 -2 7 9 3 10 3
============================
구간 2~4 = sum[5] - sum[2]
(10 -7 = 3)
============================
결국 arr[i]~[j]의 구간 합은 sum(j+1) - sum(j)
위와 같은 느낌으로 잡아주면 된다....
'Project > algorithm' 카테고리의 다른 글
변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기 (0) | 2015.06.07 |
---|---|
소수 찾아내는 알고리즘 (0) | 2014.06.02 |
케이크 나누기 (0) | 2014.05.21 |
linear (0) | 2014.05.19 |
설정
트랙백
댓글
글
케이크 나누기
아인쉬타인 생일날 그는 가장 친한 두명의 친구를 파티에 초대했다. 그의 생일이 3 월 14일 파이 데이 여서 생일케익 대신에 생일파이를 준비했다.
그의 두 친구가 차례대로 파이의 일부분을 가지고 간 후 그가 남은 파이가 얼마가 될지를 알고자 한다. 우리가 할 일은 그를 도와서 남은 파이가 얼마인지를 알아내는 것이다.
입력
입력으로 두 줄이 주어지고 각 줄은 친구 한 명이 먹는 파이의 양이 분수로 입력된다. 첫수가 분자 , 두 번째 수가 분모이다.
두 분수의 합은 1 을 넘지 않는다.
출력
남은 파이의 양을 출력한다. 만약 남은 파이의 양이 없으면 0 을 출력하고 아니면 기약분수로 출력한다.
입출력 예
입력
1 4
1 4
출력
1/2
입력
1 4
2 3
출력
1/12
입력
33 99
66 99
출력
0
입력
2 17
5 23
- 케이크가 있는데, 전체의 량을 1로 잡고, 각각 두사람이 나눠 먹을시 남아있는 케이크가
얼마나 남았는지를 확인하는 알고리즘
-> 유클리드 호제법으로 풀이 가능함
'Project > algorithm' 카테고리의 다른 글
변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기 (0) | 2015.06.07 |
---|---|
소수 찾아내는 알고리즘 (0) | 2014.06.02 |
부분 구간의 합 구하기 (0) | 2014.05.25 |
linear (0) | 2014.05.19 |
설정
트랙백
댓글
글
linear
프로그램 명: linear
제한시간: 1 초
세 수의 순서쌍을 찾는 문제이다. 순서쌍 (s1,s2,s3) 는 s2 - s1 = s3 - s2 를 만족.(s1 < s2 < s3)
예를 들어 , (1,2,3) , (2,4,6) , (14,21,28) 은 만족하는 순서쌍이다.
정렬된 집합 S 가 주어질 때 이를 만족하는 순서쌍의 개수를 출력하시오.
입력
첫 수는 집합 S 의 원소의 개수 s 이다. 원소의 개수는 3 개이상 30 개 이하이다.
다음 줄에는 s 개의 정수가 주어진다. 각 수는 1 이상 100 이하
출력
개수를 출력한다. 개수는 정수 범위를 넘지 않는다.
입출력 예
입력
7
1 2 3 4 6 8 9
출력
5
출처 : usaco
====================================================================================================
** 그렇게 어려운 문제는 아니다.
s1,s2,s3의 위치를 잡아준 다음에, 문제의 조건을 그대로 3중 포문으로 해결하면 끝~
int arr[101];
int main()
{
int n,cnt=0;;
cin>>n;
for(int i=0;i<n;i++) cin>>arr[i];
for(int i=0;i<n-2;i++)
{
for(int j=i+1;j<n-1;j++)
{
for(int k=i+2;k<n;k++)
{
if(arr[k]-arr[j]==arr[j]-arr[i]) cnt++;
else if(arr[k]-arr[j]>arr[j]-arr[i]) break;
}
}
}
cout<<cnt<<endl;
return 0;
}
'Project > algorithm' 카테고리의 다른 글
변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기 (0) | 2015.06.07 |
---|---|
소수 찾아내는 알고리즘 (0) | 2014.06.02 |
부분 구간의 합 구하기 (0) | 2014.05.25 |
케이크 나누기 (0) | 2014.05.21 |