728x90
SMALL
백준 문제 풀이: 14910 (오르막)
문제 링크: https://www.acmicpc.net/problem/14910
문제 설명:
여러 개의 정수가 주어졌을 때, 숫자들이 오름차순으로 나열되어 있는지 확인하는 문제입니다. 정수들이 오름차순이라면 "Good"을, 그렇지 않다면 "Bad"를 출력합니다.
문제 해결 코드
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int a; // 첫 번째 숫자
cin >> a;
while (true) {
int b;
cin >> b;
// 입력이 끝나면 종료
if (cin.eof()) break;
// 오름차순이 아닌 경우 "Bad" 출력 후 종료
if (a > b) {
cout << "Bad" << '\n';
return 0;
}
a = b; // 다음 비교를 위해 값 갱신
}
// 모든 숫자가 오름차순이라면 "Good" 출력
cout << "Good" << '\n';
return 0;
}
코드 설명
코드의 주요 로직과 사용된 알고리즘 설명:
- 핵심 알고리즘: 주어진 정수 리스트를 순회하며 인접한 두 숫자를 비교해 오름차순 여부를 판별합니다.
- 구현 세부사항:
cin.eof()
: 입력이 끝나는 경우를 처리합니다.a > b
: 현재 숫자b
가 이전 숫자a
보다 작으면 오름차순이 아니므로 "Bad"를 출력하고 프로그램을 종료합니다.- 모든 숫자가 순회된 후에도 조건을 위배하지 않으면 "Good"을 출력합니다.
- 시간 복잡도 분석:
- 입력으로 주어지는 숫자의 개수를
n
이라고 할 때, 리스트를 한 번 순회하므로 시간 복잡도는 O(n)입니다.
- 입력으로 주어지는 숫자의 개수를
결과
주어진 정수 리스트가 오름차순인지 확인하고 결과를 출력합니다.
- 오름차순: "Good"
- 오름차순이 아닌 경우: "Bad"
다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!
728x90
LIST
'BAEKJOON > 구현' 카테고리의 다른 글
백준 4396번 [지뢰 찾기](C++) -yes6686- 티스토리 (1) | 2024.07.15 |
---|---|
백준 11536번 [줄 세우기](C++) -yes6686- 티스토리 (0) | 2024.07.15 |
백준 5704번 [팬그램](C++) -yes6686- 티스토리 (0) | 2024.07.15 |
백준 4447번 [좋은놈 나쁜놈](C++) -yes6686- 티스토리 (0) | 2024.07.15 |
백준 11586번 [지영 공주님의 마법 거울](C++) -yes6686- 티스토리 (0) | 2024.07.14 |