C#

백준 C# 2920 문제 풀이

psb08 2024. 9. 15. 16:10
728x90

문제 링크 : https://www.acmicpc.net/problem/2920

 

백준 브론즈 2 문제 입니다.

 

내 코드 

 

string _input = Console.ReadLine();
string[] s = _input.Split();
int[] _num = new int[8];

string _state = "";
int ascending = 0;
int descending = 0;

for (int i = 0; i < 8; i++)
{
    _num[i] = int.Parse(s[i]);
}

for (int i = 0; i < 8; i++)
{
    if (i == 7) break;

    if (_num[i] < _num[i + 1] && ascending == i)
    {
        _state = "ascending";
        ascending++;
    }
    else if (_num[i] > _num[i + 1] && descending == i)
    {
        _state = "descending";
        descending++;
    }
    else
    {
        _state = "mixed";
        break;
    }
}

Console.WriteLine(_state);

 

코드 풀이 해석 내용

 

string _input = Console.ReadLine();
string[] s = _input.Split();

입력된 문자열을 읽고 공백을 기준으로 나누어 s 배열에 저장합니다.

 

int[] _num = new int[8];

정수형 배열 _num을 생성합니다.

8개의 숫자를 저장할 준비를 합니다.

 

string _state = "";
int ascending = 0;
int descending = 0;

상태를 저장할 _state변수를 생성하고 초기화합니다.

오름차순 및 내림차순 카운터를 생성하고 0으로 초기화합니다.

 

for (int i = 0; i < 8; i++)
{
    _num[i] = int.Parse(s[i]);
}

문자열 배열 s에서 각 요소를 정수로 변환합니다.

변환 후 _num배열에 저장합니다.

 

for (int i = 0; i < 8; i++)
{
    if (i == 7) break;

    if (_num[i] < _num[i + 1] && ascending == i)
    {
        _state = "ascending";
        ascending++;
    }
    else if (_num[i] > _num[i + 1] && descending == i)
    {
        _state = "descending";
        descending++;
    }
    else
    {
        _state = "mixed";
        break;
    }
}

8가지 숫자를 돌며 두 가지 조건을 검사합니다.

1. 현재 숫자가 다음 숫자보다 작고, ascending 카운터가 현재 인덱스와 같으면 ascending 상태로 설정합니다.

그 다음 카운터를 증가 시킵니다.

2. 현재 숫자가 다음 숫자보다 크고, descending 카운터가 현재 인덱스와 같다면 descending 상태로 설정합니다.

그 다음 카운터를 감소 시킵니다.

3. 두 가지 조건을 만족하지 않으면 상태를 mixed로 설정하고 반복을 중단시킵니다.

 

Console.WriteLine(_state);

 최종적으로 결정된 상태를 출력합니다.

 

 

실행 결과

 

실행 결과
실행 결과 2
실행 결과 3

728x90

'C#' 카테고리의 다른 글

백준 C# 2839 문제 풀이  (0) 2024.09.16
백준 C# 8958 문제 풀이  (0) 2024.09.15
백준 C# 10250 문제 풀이  (0) 2024.09.15
백준 C# 2231 문제 풀이  (0) 2024.09.13
백준 C# 31403 문제 풀이  (0) 2024.09.13