C++ 백준 1110번/1929번
by 너나나1929번만 블로그에 올리려다가 1110번 처음 제출했을 때 틀려서 1110번도 그냥 올리기로 결정!!
쉬운 문제들은 사실 코드 올리기도 좀 머쓱머쓱한데 그래도 내가 첫 번째 제출 때 틀렸으니까!!! 올린다!!!!
백준 1110번 www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
문제 : 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자.
26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.
위의 예는 4번 만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.
N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.
#include<iostream>
using namespace std;
int main() {
int num;
int count = 0;
int sum = 0;
cin >> num;
if (num < 10) {
num = num * 10;
}
int a, b; //
a = num / 10; // 두번째 자리
b = num % 10; // 첫번째 자리
while (sum != num || count == 0 ) {
int t;
t = (a + b)%10;
a = b;
b = t;
count++;
sum = a * 10 + b;
}
cout << count << '\n';
}
처음에 저기 while을 while(sum != num) 으로만 해서 틀렸다. 생각해보니까 시도횟수가 0번일때는 무조건 while문을 돌아야 되기 때문에 while (sum != num || count == 0 ) 이렇게 고쳤다!!
백준 1929번 www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
문제 : M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
이 문제는 guiyum.tistory.com/8 여기서 설명한 에라토스테네스의 체를 이용하는 문제이다.
#define MAX 10000000
#include<iostream>
using namespace std;
bool check[MAX + 1];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
check[0] = check[1] = true; //0,1은 지운다!
for (int i = 2; i * i <= MAX; i++) {
if (check[i] == false) {
for (int j = i * i; j <= MAX; j += i) {
check[j] = true; // 소수의 배수는 지운다!
}
}
}
int a, b;
cin >> a >> b;
for (int i = a; i <= b; i++) {
if (check[i] == false)
cout << i << '\n';
}
}
'study > 알고리즘' 카테고리의 다른 글
C++ 백준 2748번 (0) | 2020.12.29 |
---|---|
C++ 알고리즘 - 다이나믹 프로그래밍 (0) | 2020.12.28 |
C++ 알고리즘 소수구하기 - 에라토스테네스의 체 (0) | 2020.12.28 |
C++ 알고리즘 나머지 연산/최대공약수/소수 (0) | 2020.12.28 |
C++ 백준 17413번/10799번 (0) | 2020.12.28 |
블로그의 정보
공부 기록
너나나