Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
Tags
- Get
- 스택
- mysql
- 큐
- docker-compose
- .net maui
- 정렬
- asp.net
- 시간복잡도
- .NET
- C++
- BFS
- 자료구조
- 백준
- .net core
- C#
- Merge Sort
- 알고리즘
- API
- quick sort
- 재귀
- maui
- asp.net core
- REDIS
- Docker
- dfs
- 파이썬
- 도커
- 탐색
- sql
Archives
- Today
- Total
코젤브
[C++] 백준 10951번 : A+B-4 본문
https://www.acmicpc.net/problem/10951
전체 코드
// class1
// 백준 10951번 : A+B-4
#include <iostream>
using namespace std;
int main()
{
int A, B;
// 방법 1 : scanf와 EOF 활용
while (scanf("%d %d", &A, &B) != EOF) {
printf("%d\n", A + B);
}
// 방법 2 : scanf함수의 리턴값 활용
while (scanf("%d %d", &A, &B) == 2) // 읽어드린 입력 개수 반환
printf("%d\n", A + B);
// 방법 3 : cin과 eof() 사용
while (!(cin >> A >> B).eof()) { // 혹은 eof() 대신 fail()을 사용해도 된다.
cout << A + B << "\n";
}
// 방법 4 : cin 조건식에서 bool 값 반환
while (cin >> A >> B) {
cout << A + B << "\n";
}
return 0;
}
EOF에 대해 알고 있어야 하는 문제.
정말 다양하게 해결할 수 있다.
1. scanf와 EOF 활용
이 방법은 scanf 함수와 EOF(End Of File)를 활용하여 입력의 끝을 확인하는 방식이다.
- scanf 함수는 성공적으로 입력을 읽어들이면 읽어들인 항목의 개수를 반환하며,
입력의 끝에 도달하면 EOF를 반환한다. - while (scanf("%d %d", &A, &B) != EOF)는 입력이 계속 들어오는 동안 반복문을 실행한다.
- 입력이 성공적으로 읽어들여진 경우, A + B의 결과를 출력한다.
2. scanf 함수의 리턴값 활용
이 방법은 scanf 함수의 리턴값을 활용하여 입력이 정상적으로 읽어들여졌는지 확인하는 방식이다.
- scanf 함수는 성공적으로 읽어들인 항목의 개수를 반환한다.
- while (scanf("%d %d", &A, &B) == 2)는 두 개의 정수를 정상적으로 읽어들였는지 확인하여 반복문을 실행한다.
- 입력이 성공적으로 읽어들여진 경우, A + B의 결과를 출력한다.
3. cin과 eof() 사용
이 방법은 C++의 cin 스트림과 eof() 함수를 사용하여 입력의 끝을 확인하는 방식이다.
- cin.eof()는 입력 스트림이 파일의 끝에 도달했는지 확인한다.
- while (!(cin >> A >> B).eof())는 입력 스트림이 파일의 끝에 도달하지 않았는 동안 반복문을 실행한다.
- 입력이 성공적으로 읽어들여진 경우, A + B의 결과를 출력한다.
4. cin 조건식에서 bool 값 반환
이 방법은 C++의 cin 스트림을 조건식에서 사용하여 입력이 성공적으로 읽어들여졌는지 확인하는 방식이다.
- cin은 입력이 성공적으로 읽어들여지면 true를, 실패하면 false를 반환한다.
- while (cin >> A >> B)는 입력이 성공적으로 읽어들여지는 동안 반복문을 실행한다.
- 입력이 성공적으로 읽어들여진 경우, A + B의 결과를 출력한다.
요약
- 방법 1: scanf와 EOF를 활용하여, 입력의 끝 확인
- 방법 2: scanf 함수의 반환값을 활용하여, 입력의 성공 여부 확인
- 방법 3: cin 스트림과 eof() 함수를 사용하여, 입력의 끝 확인
- 방법 4: cin 스트림을 조건식에서 사용하여, 입력의 성공 여부 확인
4가지 다 정답이다.
'컴공의 일상 > 백준 문제' 카테고리의 다른 글
7주차 - 동적계획법 (백준 2579번) (0) | 2022.05.25 |
---|---|
6주차 - Backtracking (백준 2580번) (0) | 2022.05.18 |
5주차 - 그리디 알고리즘 (백준 11047) (0) | 2022.05.13 |
4주차 - 정렬과 탐색(백준 2750번) 합병 정렬 & 퀵 정렬 (0) | 2022.05.05 |
3주차 - 트리 (백준 1991번) (0) | 2022.04.06 |