[C++]BOJ 5585 - 거스름돈

[C++]BOJ 5585 - 거스름돈

동전 내는 문제에서 거스름돈으로 바뀐 문제.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int main()
{
short a;
cin >> a;
a = 1000 - a;
int b = 0;
b += a / 500;
a = a % 500;
b += a / 100;
a = a % 100;
b += a / 50;
a = a % 50;
b += a / 10;
a = a % 10;
b += a / 5;
a = a % 5;
b += a / 1;
a = a % 1;
cout << b;
}
Read More
[C++]BOJ 1931 - 회의실배정

[C++]BOJ 1931 - 회의실배정

회의가 끝나는 시간이 빠른 회의 순으로 정렬 후 이전 회의의 끝나는 시간과 현재 회의가 시작하는 시간의 조건을 만족시키면 회의 수를 +1 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int, int> p;
int main()
{
int a;
cin >> a;
p b[100001];
for(int i = 0; i < a; i++)
{
cin >> b[i].second >> b[i].first;
}
sort(b, b+a);
int c = 1;
int l = b[0].first;
for(int i = 1; i < a; i++)
{
if(b[i].second >= l)
{
l = b[i].first;
c++;
}
}
cout << c;
}
Read More
[C++]BOJ 11047 - 동전0

[C++]BOJ 11047 - 동전0

동전금액이 큰 단위부터 나눠가면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
int v[11];
for(int i = 0; i < n; i++)
{
cin >> v[i];
}
int g = 0;
int j = n - 1;
while(1)
{
if(k == 0)
{
break;
}
if(v[j] <= k)
{
g += k / v[j];
k = k % v[j];
}
j--;
}
cout << g;
}
Read More
[C++]BOJ 11399 - ATM

[C++]BOJ 11399 - ATM

앞사람의 인출 시간이 적을 때 전체 인출 시간이 적어진다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int time[1001];
int a;
cin >> a;
for(int i = 0; i < a; i++)
cin >> time[i];
sort(time, time + a);
long long b = 0;
for(int i = 0; i < a; i++)
for(int j = 0; j < i + 1; j++)
b += time[j];
cout << b;
}
Read More

알고리즘 공부 시작

목표


  1. 알고리즘 공부
  2. 시험 기간이라도 백준 하루 한 문제 이상은 꼭 풀도록 노력 (실패)

공부할 알고리즘


  1. 그리디 알고리즘

  2. 다이나믹 프로그래밍

  3. bfs, dfs

  4. 다익스트라 알고리즘

  5. 브루트 포스

  6. 플로이드 와샬 알고리즘

Read More