전체 코드


🚀 1. 코드 개요

이 코드는 vector<int>를 사용하여 난수를 생성하고, 다음과 같은 문제를 해결합니다.

  1. 특정 숫자(50)가 존재하는지 확인하고 위치를 찾기
  2. 11의 배수가 존재하는지 확인하고 위치를 찾기
  3. 홀수 개수 세기
  4. 모든 요소를 3배로 변경

이를 통해 C++ STL에서 vector, iterator, 반복문을 활용하는 방법을 익힐 수 있습니다.


📂 2. 코드 분석

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;

헤더 파일 설명

  • #include <iostream> : 콘솔 입출력 (cin, cout)
  • #include <vector> : 동적 배열인 vector 사용
  • #include <cstdlib> : 난수 생성 (rand, srand)
  • #include <ctime> : srand(time(nullptr))을 이용한 난수 초기화

🎯 main 함수 시작

int main()
{
    srand(static_cast<unsigned int>(time(nullptr)));

난수 시드 설정

  • srand(time(nullptr)) : 현재 시간을 기반으로 난수를 초기화
  • static_cast<unsigned int> : time_t 타입을 unsigned int로 변환

🔹 1. vector에 난수 100개 저장

    vector<int> v;
    
    for (int i = 0; i < 100; i++)
    {
        int num = rand() % 100; // 0 ~ 99 난수 생성
        v.push_back(num); // 벡터에 추가
    }

vector<int> v; → 정수형 vector 선언
rand() % 1000부터 99까지 난수 생성
push_back(num); → 생성된 난수를 벡터에 추가


🔹 2. 특정 숫자(50) 존재 여부 확인

    int number = 50;
    bool found = false;
    vector<int>::iterator it;

    for (int i = 0; i < v.size(); i++)
    {
        int data = v[i];
        if (data == number)
        {
            found = true;
            it = v.begin() + i; // 위치 저장
            break;
        }
    }

특정 숫자 50이 있는지 확인

  • bool found = false; → 찾았는지 여부를 저장
  • vector<int>::iterator it; → 찾은 위치 저장
  • if (data == number) → 찾으면 found = true;, 위치 저장 후 종료

🔹 3. 11의 배수 존재 여부 확인

    found = false;

    for (int i = 0; i < v.size(); i++)
    {
        int data = v[i];
        if ((data % 11) == 0) // 11의 배수 확인
        {
            found = true;
            it = v.begin() + i; // 위치 저장
            break;
        }
    }

11의 배수인지 확인 (data % 11 == 0)
발견되면 found = true; 및 위치 저장


🔹 4. 홀수 개수 세기

    int count = 0;
    for (int i = 0; i < v.size(); i++)
    {
        if ((v[i] % 2) != 0) // 홀수 확인
        {
            count++;
        }
    }

홀수(data % 2 != 0)인 경우 count 증가


🔹 5. 모든 숫자를 3배로 변환

    for (int i = 0; i < v.size(); i++)
    {
        v[i] *= 3; // 각 원소에 3을 곱함
    }

벡터의 모든 요소를 3배 증가
v[i] *= 3;v[i] = v[i] * 3;


profile
李家네_공부방

0개의 댓글