https://www.acmicpc.net/problem/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인지 판별하는 프로그램을 작성하시오.










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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
 
int now = 0;
int umgye[8= { 0, };
 
int main() {
    //freopen("test.txt", "r", stdin);
    for (int i = 0; i < 8; i++) {
        cin >> umgye[i];
    }
    for (int i = 0; i < 7; i++) {
        if (umgye[i + 1== umgye[i] + 1)now = 1;
        else if (umgye[i + 1== umgye[i] - 1)now = 2;
        else {
            now = 3;
            break;
        }
    }
    switch (now) {
    case 1cout << "ascending";
        break;
    case 2cout << "descending";
        break;
    case 3cout << "mixed";
        break;
    }
}
cs


이렇게 풀이했습니다.

현재상태를 now로 저장을해서 1인경우는 ascending 2인경우에는 descending 3인경우는 mixed로 출력하게했습니다

다음요소가 현재요소보다 1이 크다면 계속 1을 대입하고 1보다 작은순간은 2를 넣습니다. 

이게 1씩증가하는 수만의 조합이라면 2차이가 날 수 없기 때문에 차이가 2가 나는순간 바로 mixed로 판별이되고 break로 구문을 빠져나오게 됩니다.


'재미있는공부이야기 > 알고리듬' 카테고리의 다른 글

KMP 알고리즘  (0) 2019.02.15
3장. 문자열  (0) 2019.02.13
2장. 정렬  (0) 2019.02.09
백준 2846번 오르막길  (0) 2019.02.09
1장. 배열  (0) 2019.02.07

배열은 알고리즘에서 자주쓰인다.

하지만 취뽀용으로는 사용하는 방법정도만 알고있으면된다. 탐색 정렬 수열응용 등으로 응용될수있다.

배열의 선언

1
2
int num[0]; // 컴파일에러 . 크기가 0인배열은 선언할 수 없음
int num[1]; // 크기가 1인 배열. 요소가 1개



배열을 0으로 모두 초기화하기.

1
2
3
4
int num[] = { 11,22,33,44 }; //배열의 크기생략
int num2[]; // 컴파일에러

int num[10= { 0, }; // 배열의 요소를 모두 0으로 초기화

배열의 크기. 그리고 for문을 이용한 배열의 요소 출력

1
2
3
4
5
6
7
sizeof(num) // 4바이트 크기의 요소가 10개이므로 40
sizeof(num) /sizeof(int// 배열의 크기를 구할때는 전체공간을 요소의 크기로나눔
 
for (int i = 0; i < sizeof(num) / sizeof(int); i++) {
    printf("%d\n", num[i]);
}
 r


같은 느낌으로 2차원배열에서

1
2
3
4
5
6
7
int num[3][4= { 0, };       // 2차원 배열의 요소를 모두 0으로 초기화
 
num[0][0= 11;    // 세로 인덱스 0, 가로 인덱스 0인 요소에 값 할당
num[0][1= 22;    // 세로 인덱스 0, 가로 인덱스 1인 요소에 값 할당
sizeof(num); // 4바이트 크기의 요소가 (4x3)개 이므로 (4x4x3) = 48.
int col = sizeof(num[0]) / sizeof(int); // 가로
int row = sizeof(num) / sizeof(num[0]); // 세로


배열은 동적할당이나 포인터, 함수의 매개변수 등등으로 안쓰면 어지러워질 일이없다. 전역변수로 이를 해결한다.


백준 2846번 오르막길, 2920번 음계를 보도록 한다.

'재미있는공부이야기 > 알고리듬' 카테고리의 다른 글

KMP 알고리즘  (0) 2019.02.15
3장. 문자열  (0) 2019.02.13
2장. 정렬  (0) 2019.02.09
백준 2846번 오르막길  (0) 2019.02.09
백준 2920번 음계  (0) 2019.02.07

인식?

표현이맞는지모르겠는데


이렇게쓰면 미에 UnityEngine 도 나오고 등등 많이나와야되는데


비쥬얼이  Unity 네임스페이스들을 인식을 못해서

하나씩 완타로 작성해야되는 불편함이있을때


비쥬얼에서

도구- 도구및기능가져오기


탭을누르면



이렇게 유니티를 사용한 게임개발 탭이있는데 누르고 업데이트를 누르면된다.

나의 유니티길을 막지말라

'unity' 카테고리의 다른 글

1. [Unity] 유니티 설치하기  (0) 2020.03.31
앞으로 업데이트될 목록  (0) 2019.11.12

+ Recent posts