1. 문제 풀이 아이디어
string.Compare()
메서드를 활용하여 문자열을 비교해 문제를 해결한다.
2. 나의 정답 코드
using (StreamReader sr = new StreamReader(Console.OpenStandardInput()))
using (StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()))
{
int n = int.Parse(sr.ReadLine());
string prev = sr.ReadLine();
bool inc = true;
bool dec = true;
for (int i = 0; i < n - 1; i++)
{
string cur = sr.ReadLine();
if (string.Compare(cur, prev) > 0) dec = false;
else inc = false;
prev = cur;
}
if (inc)
{
sw.WriteLine("INCREASING");
}
else if (dec)
{
sw.WriteLine("DECREASING");
}
else
{
sw.WriteLine("NEITHER");
}
}
3. 정리
- 첫 번째 문자열을 기준으로 이후 문자열들과 비교하며 정렬 여부를 판단한다.
inc
와dec
두 개의 불리언 변수를 사용하여 각각 오름차순과 내림차순 여부를 체크한다.
string.Compare(cur, prev) > 0
이면 현재 문자열이 이전 문자열보다 크므로 내림차순이 아니므로dec = false
로 설정한다.
- 반대로,
cur
이prev
보다 작거나 같으면 오름차순이 아니므로inc = false
로 설정한다.
- 모든 비교가 끝난 후,
inc
가 참이면 "INCREASING",dec
가 참이면 "DECREASING", 둘 다 거짓이면 "NEITHER"를 출력한다.
Share article