본문 바로가기

Baekjoon/C++

[C++][BOJ/백준] 4641 Doubles

 

 

Baekjoon Online Judge

 

4641번: Doubles

2~15개의 서로 다른 자연수로 이루어진 리스트가 있을 때, 이들 중 리스트 안에 자신의 정확히 2배인 수가 있는 수의 개수를 구하여라. 예를 들어, 리스트가 "1 4 3 2 9 7 18 22"라면 2가 1의 2배, 4가 2의

www.acmicpc.net

 

 

[문제]

2~15개의 서로 다른 자연수로 이루어진 리스트가 있을 때, 이들 중 리스트 안에 자신의 정확히 2배인 수가 있는 수의 개수를 구하여라.

예를 들어, 리스트가 "1 4 3 2 9 7 18 22"라면 2가 1의 2배, 4가 2의 2배, 18이 9의 2배이므로 답은 3이다.

 

 

[입력]

입력은 여러 개의 테스트 케이스로 주어져 있으며, 입력의 끝에는 -1이 하나 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 2~15개의 서로 다른 자연수가 주어진다. 각 자연수는 100보다 작으며, 리스트의 끝은 0으로 판별한다(0은 리스트에 속하지 않는다).

 

 

[출력]

각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다.

 

 


 

[코드]

#include <iostream>
using namespace std;

int main()
{
    int n;

    while (1)
    {
        int cnt = 0, a[100] = { 0 };

        for (int i = 0; i < 16; i++)
        {
            cin >> n;

            if (n == -1)
                return 0;

            a[n] = 1;

            if (n == 0)
                break;
        }

        for (int j = 1; j < 50; j++)
        {
            if (a[j] == 1 && a[j * 2] == 1)
                cnt++;
        }

        printf("%d\n", cnt);
    }

    return 0;
}

자잘한 실수를 많이 해서 여러 번 시도한 후 성공했다.

다른 사람들은 주로 vector를 사용한 것 같다.

 

 

 

'Baekjoon > C++' 카테고리의 다른 글

[C++][BOJ/백준] 11109 괴짜 교수  (2) 2024.03.12
[C++][BOJ/백준] 1568 새  (0) 2024.03.10
[C++][BOJ/백준] 10874 이교수님의 시험  (0) 2024.03.08
[C++][BOJ/백준] 11931 수 정렬하기 4  (1) 2024.03.06
[C++][BOJ/백준] 9455 박스  (0) 2024.03.03