일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 어도비
- Shamir
- UX
- 디자인
- 포토샵
- haze #텐서플로 #tensorflow #ai
- 완전 비밀 분산
- 블로그_이전_계획보다_지금_해야할게_더_많아서_유지예정
- 비밀 분산 기법
- Adobe
- #암호학이론
- CC
- 샤미르
- graph 3 coloring
- zero knowledge proof
Archives
- Today
- Total
For Beginners
2920번: 음계 본문
2920번: 음계
728x90
https://www.acmicpc.net/problem/2920
2920번: 음계
문제 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을
www.acmicpc.net
음 일단 숫자의 증감도를 측정하여
그 증감도의 비중이 달라지는 경우 믹스가 되고, 안달라지는 경우, 어센딩 또는 디센딩이 되게 출력하게 하면 될 것 같다.
음 그리고 애초에 음계에서 중복되는 숫자가 없기 때문에 그냥 이전 숫자에 비해서 증가했는지 감소했는지만 따지면 될 것 같다.
#include <iostream>
using namespace std;
int main() {
int input ,input2 = 0;
int status = 0;
int bef_status = 0;
cin >> input;
int A = input;
cin >> input2;
int B = input2;
status = B - A;
A = input2;
//초기값으로 차이 구하고, 변수 다 복구했음
//bef_status 는 이전 변수의 차이를 말함
//status는 현재 변수의 차이를 말함
for (int i = 1; i < 7; i++) {
bef_status = status;
//이전 변수의 차이로 변수값 이동
//ascending인지, descending인지, 아니면 mixed
cin >> input;
B = input;
status = B - A;
if (bef_status != status) {
cout << "mixed";
return 0;
}
else {
A = B;
//변수 이동
}
}
if (status < 0) {
cout << "descending";
}
else {
cout << "ascending";
}
return 0;
}