티스토리 뷰
한글 쓰는 거 렉 걸려서 이어서 쓰겠다.
3) 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번: 부녀회장이 될테야
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번: 벌집
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번: 약수
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?.. 잘 모르겠다.
'방학일기 > 코딩' 카테고리의 다른 글
[JAVA] #17427 약수의 합 2 (0) | 2022.02.05 |
---|---|
방학 계획 3일차 - 백준 알고리즘 하루에 4문제 풀기(3) (0) | 2021.01.07 |
방학 계획 3일차 - 백준 알고리즘 하루에 4문제 풀기(1) (0) | 2021.01.07 |
방학 계획 2일차 - 백준 알고리즘 4문제 풀기 (3) (0) | 2021.01.06 |
방학 계획 2일차 - 백준 알고리즘 4문제 풀기 (2) (0) | 2021.01.06 |