Baekjoon 10951. A+B - 4

nang_nang·2022년 11월 2일

PS

목록 보기
5/18

📝 Baekjoon 10951 문제풀이


💡문제 정의

문제는 위와 같다. 비슷한 유형의 문제가 여럿 있었어서, 처음에는 대충 문제를 훑어보고 읭? 했다.
그런데 테스트 케이스의 개수가 주어지지 않는다는 차이점이 있었다...!
그래서 EOF(End Of File)을 활용하는 것 같다는 생각이 문득 떠올랐으나, 코드를 끄적여보니 생각보다 쉽게 답이 나오지는 않았다.

해법을 찾아보다가 전혀 모르던 사실을 발견했다...

🚀scanf는 리턴값이 있다!

scanf는 함수를 실행하여, 저장에 성공한 데이터의 개수를 리턴한다. 만약 EOF를 입력 받거나 에러가 발생하면 -1를 리턴한다.

# include <stdio.h>

int main(void) {
  int a; // scanf 함수의 리턴값을 저장할 변수
  int n1, n2;

  a = scanf("%d %d", &n1, &n2);
  printf("return value of scanf function: %d\n", a);

  return 0;
}

아래는 위 코드의 실행 결과이다.


처음에 1 3을 입력한 결과, 2개의 정수 저장 성공 -> 2 리턴
Windows의 End Of File인 ^Z(Ctrl + z) 입력 -> -1 리턴

위와 같은 사실을 활용하여 문제 해결!
아래는 제출한 코드이다.

1) C

int main(void) {
    int n1, n2;
    while (scanf("%d %d", &n1, &n2) == 2) {
        printf("%d\n", n1 + n2);
    }
    return 0;
}

💡참고

https://chuckolet.tistory.com/37

profile
조금씩 앞으로

0개의 댓글