티스토리 뷰

한글 쓰는 거 렉 걸려서 이어서 쓰겠다.

3) 3052번: 나머지

www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

#include <iostream>
using namespace std;

int main() {
	int a[10], count = 0;
	for (int i = 0; i < 10; i++) {
		cin >> a[i];
		a[i] = a[i] % 42;
	}
	for (int i = 0; i < 10; i++) {
		for (int j = i+1; j < 10; j++) {
			if (a[i] == a[j]) a[j] = -1;
		}
	}
	for (int i = 0; i < 10; i++) if (a[i] != -1) count++;
	cout << count;
}

이건 어렵진 않았는데 헷갈렸던 부분은 a[j]를 처음에 0으로 저장했던 것. 나머지가 0이 나올 수 있다는 사실을 구글링하면서야 발견했다... 모르는 게 많은 건 사실이지만 구글링을 너무 습관화하는 것도 그렇게 좋은 것 같지는 않다.. 아무튼 나 혼자 문제 해결을 못해서 너무 어이가 없는 문제였지만 결론적으론 고양이랑 개보단 쉬웠던 것 같다 ;;; 단순 출력이 더 어려운 자두 ^^;;

 

4) 2775번: 부녀회장이 될테야

www.acmicpc.net/problem/2775

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

#include <iostream>
using namespace std;

int main() {
	int a[15][15], sum = 0, n, k, t;
	a[0][0] = 0;
	for (int i = 1; i < 15; i++) { 
		a[0][i] = i+1; 
		a[i][0] = 1;
	}
	for (int i = 1; i < 15; i++) {
		for (int j = 1; j < 15; j++) {
			a[i][j] = a[i - 1][j] + a[i][j - 1];
		}
	}
	cin >> t;
	for (int i = 0; i < t; i++) {
		cin >> k >> n;
		cout << a[k][n - 1] << "\n";
	}
}

이 문제는 정말정말 자존심이 상하는 문제였달까.. 잘 풀 수 있다고 생각했는데 2차원 배열... 진짜 2차원 배열일 거라고는 생각을 못했다. 역시 문제도 계속 풀어야 실력이 늘게 된다고 분명히 수업 시간에 했었는데 이걸 까먹었다는 게 너무 한심하다. 어쨋든 2차원 배열 다시 공부하고 좋았다. 배운 거는 다 써먹을 줄 알도록 더 열심히 풀어야지..

 

5) 2292번: 벌집

www.acmicpc.net/problem/2292

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

#include <iostream>
using namespace std;

int main() {
	int n, num = 1, count = 0;
	cin >> n;
	for (int i = 0; num < n; i++) {
		num += (i * 6);
		count++;
	}
	if (n == 1) count = 1;
	cout << count;
}

솔직히 이 문제 리얼 쉬웠다. 브론즈 2 라는데 바로 풀었다... 그럴 줄 알았다^^ 근데 예외가 있다는 걸 몰랐다. 아까 나머지 문제처럼...ㅋㅋㅋㅋ 1이 count 에서 카운트되지 않고 있다는 걸 또 구글링하면서 알았다. 이쯤되면 그냥 귀찮은 거 아닌지.. 백준에서 제시하고 있는 예시만 해봤었는데 이 문제 이후로는 진짜 별의 별 숫자 다 넣어보면서 검사하기 시작했다. 좋은 현상이다.. 맞지?..

 

6) 1037번: 약수

www.acmicpc.net/problem/1037

 

1037번: 약수

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되

www.acmicpc.net

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int t, a[50];

	cin >> t;
	for (int i = 0; i < t; i++) cin >> a[i];
	sort(a, a + t);
	cout << a[0] * a[t - 1];
}

이 문제는 그렇게 어렵지는 않았다. 도서관 가야될 일 있어서 가면서 머리로 구상한 정말 단순한 문제이다. 근데 내가 생각을 못했던 거는 sort()함수 쓰는 거 .. 그냥 맨 뒤랑 맨 앞만 곱하면 된다고 생각했는데 그거를 당연히 오름차순으로 정렬해야된다는 걸 고려하지 못해서 조금 헤맸다. 그래도 꽤 쉽게 풀었다. 로직 자체는 진짜 금방 생각할 수 있을 정도로 단순했기 때문에 실버 5?.. 잘 모르겠다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 29 30 31
글 보관함