본문 바로가기

알고리즘/BOJ24

[BOJ] 3052. 나머지 (vector 중복 제거) https://www.acmicpc.net/problem/3052 3052번: 나머지 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었 www.acmicpc.net 나머지를 vector에 삽입하고 sort(), unique()와 erase()를 이용하여 중복 제거를 한 후 vector의 사이즈를 출력하였.. 2019. 7. 3.
[BOJ] 10989. 수 정렬하기 3 (Counting Sort) https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 처음에 Counting Sort로 풀라길래 정석적인 Counting Sort로 풀었는데 메모리 초과가 나서 게시판을 참고해서 줄이고 줄여서 풀었다. 원래 정렬 전 배열과 정렬 후 배열도 가지고 있었는데 N이 10,000,000 이하이기 때문에 10,000,000짜리 배열을 두 개나 가지고 있으니 메모리 차지를 많이 할 수 밖에 없었다. 그래서 입력 받은 수를 배열에 저장하지 않고 바로 numbersCnt 배열로 계.. 2019. 4. 28.
[BOJ] 2750. 수 정렬하기 (Bubble Sort) https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #include #include using namespace std; int N, numbers[1000]; void bubbleSort(int cnt); void print(); int main() { cin.tie(0); ios::sync_with_stdio(0); cin >> N; for (int i = 0; i > numbers[i]; } bubbleSort(0);.. 2019. 4. 27.
[BOJ] 1934. 최소공배수 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. www.acmicpc.net 최소공배수를 구하는 코드를 찾아본 적이 없어서 어떤 식으로 짜는게 정석인지 모르겠지만 나는 둘 중 작은 값으로 나누어 떨어지는 큰 값의 배수를 구했다. #include #include using namespace std; int T, A, B; int getR.. 2019. 4. 23.