#11021번




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
 
using namespace std;
 
int main()
{
    int T;
    int A, B;
 
    cin >> T;
    for (int i = 0; i < T; i++)
    {
        cin >> A >> B;
        cout << "Case #" << i + 1 << ": " << A + B << endl;
    }
}
cs


#10953번




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
 
using namespace std;
 
int main()
{
    int A, B;
    int T;
    cin >> T;
    for (int i = 0; i < T; i++)
    {
        scanf("%d,%d"&A, &B);
        cout << A + B << endl;
    }
}
cs


#10952번 



여러번 틀렸습니다.. 왜인지 도저히 모르겠었는데 endl처리를 안해줘서 그랬습니다.

사소한 실수 같은것들 조심해야 할 것 같습니다!

 문제를 똑바로 읽도록 하겠습니다ㅎㅎ




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
using namespace std;
 
int main()
{
    int A, B;
    while (1)
    {
        cin >> A >> B;
        if (A == 0 && B == 0)
        {
            return 0;
        }
        cout << A + B<<endl;
    }
}
cs


10951번 문제입니다.




저는 

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
31
32
33
34
35
36
37
38
#include<iostream>
 
using namespace std;
 
int main()
{
    int A, B;
    while (1)
    {
        while (1)
        {
            cin >> A;
            if (A <= 0)
            {
                rewind(stdin);
            }
            else
            {
                break;
            }
        }
        while (1)
        {
            cin >> B;
            if (B >= 10)
            {
                rewind(stdin);
            }
            else
            {
                break;
            }
        }
        cout << A + B<<endl;
    }
    return 0;
}
 
cs


처음에 이렇게 풀었는데, 출력초과 결과가 나왔습니다. 종료 조건이 따로 명시되어 있지 않아서 계속해서 받을 수 있게 했는데, 그게 아니었나 봅니다. 

EOF를 이용해야하는 문제라고 합니다.

그래서 재코딩 해보았습니다.



근데, 계속해서 scanf_s에서 컴파일에러가 나서 stdio.h 헤더도 추가해보고, 삽질 엄청했는데..

백준은 scanf_s가 적용이 안되는 것 같습니다..

그냥 scanf_s를 scanf로 고쳐주니 정답처리 되었습니다

이 글을 보시는 분들은 이걸로 삽질하지 마세요~!


정답처리된 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<stdio.h>
 
using namespace std;
 
int main()
{
    int A, B;
    
    while (scanf("%d %d"&A,&B)!=EOF)
    {
        cout << A + B << endl;
    }
}
 
cs




*참고로 EOF에 대해서 설명을 드리자면,

scanf는 입력받은 갯수를 리턴합니다.

만약에 scanf("%d",&A); 에서 입력이 제대로 들어왔다면 1이 리턴됩니다.

scanf("%d %d",&A,&B); 입력이 제대로 들어왔다면 2가 리턴되겠죠??

그리고 에러가 발생하거나 EOF(End Of File) 파일의 끝을 만나면 -1을 리턴합니다.

EOF는 상수 -1로 정의가 되어있습니다.  



오늘은 입출력에 대한 문제를 풀어보았어요! 문제가 쉬워서 한번에 4개 업로드 합니다!



#2557번


1
2
3
4
5
6
7
8
9
10
#include<iostream>
 
using namespace std;
 
int main()
{
    std::cout << "Hello World!\n";
 
    return 0;
}
cs



#1000번

1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
 
using namespace std;
 
int main()
{
    int A, B;
    cin >> A >> B;
    cout << A + B;
 
    return 0;
}
cs



#2558번


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
31
32
33
34
#include<iostream>
 
using namespace std;
 
int main()
{
    int A, B;
    while (1)
    {
        cin >> A;
        if (A <= 0)
        {
            cout << ("0보다 큰 수를 입력하세요: ");
            rewind(stdin);
        }
        else
            break;
    }
    while (1)
    {
        cin >> B;
        if (B > 10)
        {
            cout << ("10보다 작은 수를 입력하세요: ");
            rewind(stdin);
        }
        else
            break;
    }
 
    cout << A + B;
 
    return 0;
}
cs



#10950번


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
#include<iostream>
#include<vector>
 
using namespace std;
 
int main()
{
    int A, B;
    int T = 0;    //테스트 케이스
    vector<int> sum;
    cin >> T;
 
    for (int i = 0; i < T; i++)
    {
        cin >> A >> B;
        sum.push_back(A + B);
    }
 
    for (int i = 0; i < T; i++)
    {
        cout<<sum[i]<<endl;
    }
 
    return 0;
}
cs


10950번 문제는 다른분들 보니까 다양하게 푸셨더라고요! 처음에 배열로 할까 생각하다가, T값에 따라 달라지기 때문에

유동적으로 크기를 조절할 수 있는 백터를 사용해야겠다 생각을 하고 코딩했습니다. 



질문사항 있으시면 댓글남겨주세요 :)


Ros melodic을 사용하기 위해서 우분투 18.04를 다운로드 해보도록 하겠습니다.






위에 주소로 들어가시면 이런 창이 나오고, 여기서 이미지 파일을 다운로드 할 수 있습니다.

본인 컴퓨터에 맞게 32-bit/64-bit를 설치해주면 됩니다. 

제 컴퓨터는 64bit인 관계로, 64bit로 다운로드 하도록 하겠습니다.


iso파일 다운로드를 마쳤다면

16GB이상의 USB를 준비해줍니다. 단, 이 USB에 iso파일을 올릴 때, 내부 파일들이 모두 사라질 수 있으므로 보호할 내용이 있다면 안전한 곳에 옮겨 둔 후 빈 USB로 준비해주시길 바랍니다.

그리고 준비한 USB를 부팅가능한 USB플래시 드라이브로 만들어주기 위해 Rufus라는 응용프로그램을 사용합시다.


rufus-3.11.exe

여기 exe파일 올려드립니다. 버전은 상관없어서 저도 3.11버전 그냥 이용했습니다.


다운로드를 하시고 더블클릭하여 실행만 시켜주면





이렇게 실행이 됩니다.

그리고 USB를 컴퓨터에 꽂아주면



여기 보시면 1개의 장치를 찾음이라고 뜨고, 장치 명이 뜹니다.

여기서 16.04로 이름이 뜨는데, 이 USB에 예전에 우분투 16.04를 깔아둬서 이름만 그런거니 신경쓰지 않으셔도 됩니다.

저 이름은 본인의 USB에 따라 이름이 바뀌기 때문에 사진과 다르다고 불안해하지 않으셔도 됩니다.




그 다음 선택을 누른다음, 아까 다운받은 iso파일을 클릭하시고 열기를 누릅니다.



그러면 이렇게 iso파일이 잘 올라간 것을 볼 수 있습니다.



GPT로 바꿔주고 시작을 누릅니다.

GPT로 바꾸는게 불안하다?


장치관리자->디스크드라이브-> 사용하실 드라이브에 마우스 오른쪽키를 누르고 속성->볼륨->정보표시를 누르면 파티션 형식에 GPT인지 아닌지 뜹니다. 저는 듀얼 부팅으로 할 것이기 때문에 윈도우랑 맞춰서 GPT로 진행하도록 하겠습니다.

(웬만해선 GPT써도 되니까 뭔지 모르겠고 그냥 다운받겠다! 하시는 분들은 GPT로 진행하세요)



그럼 이제 부팅용 USB는 준비가 완료 되었습니다.




+ Recent posts