728x90
1. 문제
https://codeup.kr/problem.php?id=2018
[출처 : 코드업(https://codeup.kr/)]
이 문제는 제목 그대로 개미 수열을 구하는 문제이다
1 : 1이 1개이므로 -> 1 1
2 1 : 2가 1개, 1이 1개이므로 -> 2 1 1 1
1 1 : 1이 2개이므로 -> 1 2
이런식으로 계속 나열하는것을 개미 수열이라고 한다.
1
1 1
1 2
1 1 2 1
1 2 2 1 1 1
2. 해답
#include <stdio.h>
int arr[25][9999] = { 0, };
int main() {
int a, b, c, tmp, p;
arr[0][0] = 1;
scanf("%d %d", &a, &b);
for (int i = 1; i < b; i++) {
tmp = arr[i - 1][0];
p = 0;
c = 1;
for (int j = 1; j < 9999; j++) {
if (arr[i-1][j] == 0) {
// 이전 배열의 값이 0일경우
// 0은 -> 한줄이 끝남을 의미
arr[i][p++] = tmp;
arr[i][p] = c;
break;
}
else if (arr[i-1][j] != tmp) {
// 0이 아닌값중 tmp와 다른 수가 나오면
arr[i][p++] = tmp;
arr[i][p++] = c;
tmp = arr[i-1][j];
c = 1;
}
else c++;
}
}
for (int i = a - 1; i < b; i++) {
for (int j = 0; j < 9999; j++) {
if (arr[i][j] != 0) printf("%d ", arr[i][j]);
else break;
}
printf("\n");
}
return 0;
}
'프로그래밍 > CodeUp' 카테고리의 다른 글
CodeUp[Q_2020] : 아로마 수 (0) | 2020.03.16 |
---|---|
CodeUp[Q_2019] : 이차 방정식의 해 (0) | 2020.03.15 |
CodeUp[Q_2017] : 진법 변환 (0) | 2020.02.19 |
CodeUp[Q_2016] : 천단위 구분기호 (0) | 2020.02.18 |
CodeUp[Q_2013] : 화학식량 구하기 (0) | 2020.02.17 |