본문 바로가기
Algorithm/BackJoon

2920번: 음계

by 꼬부기가우는소리 2023. 7. 7.
728x90

- 문제 사이트: https://www.acmicpc.net/problem/24723

 

24723번: 녹색거탑

Naver D2를 아시나요? D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외

www.acmicpc.net

 

입력된 수가 1부터 8까지 1씩 증가하는지 혹은 8부터 1까지 1씩 감소하는지 혹은 둘다 아닌지 확인하는 문제이다.

 

1) 입력 받은 첫번째 수 == start

2-1) 첫번째 수 == 1 인 경우, start 값을 1씩 증가시키면서 새로 입력 받는 숫자와 일치하는지 비교

    --> 일치하지 않으면 "mixed" 출력

    --> 끝까지 일치한다면 "ascending" 출력

2-2) 첫번째 수 == 8 인 경우, start 값을 1씩 감소시키면서 새로 입력 받는 숫자와 일치하는지 비교

    --> 일치하지 않으면 "mixed" 출력

    --> 끝까지 일치한다면 "descending" 출력

2-3) 첫번째 수가 1도 8도 아니라면, 둘 다 아니라면 "mixed" 출력

 

#include <iostream>
using namespace std;

int main()
{
    int start, n;
    bool check = true;
    cin >> start;
    if (start == 1)
    {
        while (start < 8)
        {
            start++;
            cin >> n;
            if (n != start)
            {
                check = false;
                cout << "mixed\n";
                break;
            }
        }
        
        if (check)
            cout << "ascending\n";
    }
    else if (start == 8)
    {
        while (start > 1)
        {
            start--;
            cin >> n;
            if (n != start)
            {
                check = false;
                cout << "mixed\n";
                break;
            }
        }
        
        if (check)
            cout << "descending\n";   
    }
    else
        cout << "mixed\n";
    return 0;
}

- 메모리: 2020 KB

- 시간: 0 ms

- 코드 길이: 832 B

 

더 간단한 방법으로 입력 받은 문자열 자체를 비교하는 것이다.

확인 필요한 케이스가 단 두 케이스로 명확하기 때문에 사용 가능한 방법이다.

 

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str;
    getline(cin, str);
    if (str == "1 2 3 4 5 6 7 8")
        cout << "ascending";
    else if (str == "8 7 6 5 4 3 2 1")
        cout << "descending";
    else
        cout << "mixed";
    return 0;
}

- 메모리: 2024 KB

- 시간: 0 ms

- 코드 길이: 293 B

'Algorithm > BackJoon' 카테고리의 다른 글

3046번: R2  (0) 2023.07.09
24723번: 녹색거탑  (0) 2023.07.07
1269번: 대칭 차집합  (0) 2023.07.05
10816번: 숫자 카드 2  (0) 2023.07.04
10817번: 세 수  (0) 2023.07.04

댓글