C++/Baekjoon

백준 1924

그레고리 2022. 2. 9. 22:56
728x90

1924

조건문으로 해도 상관없었지만 문자열 배열을 통해 구현하고 싶었다. 

문자열 배열 생성하는 방법을 몇가지 정리해 보자.

 

1.  std::array

표준 라이브러리 소속

vector는 <vector> 헤더 파일을 include 해야한다.

std 네임스페이스 안에 들어있다. 

std::array<string,4> str_arr = {"a", "b", "c", "d"};

2. string arr[]

string 클래스가 string 헤더파일 안에 있다. <string> 헤더파일을 include 해야한다.

std 네임스페이스 안에 들어있다.

#include <string>
std::string str_arr[4] = {"a", "b", "c", "d"};

3. char arr[][]

char str_arr[4][20] = {"a", "b", "c", "d"};

4. std::vector

표준 라이브러리 소속

vector는 <vector> 헤더 파일을 include 해야한다.

std 네임스페이스 안에 들어있다. 

#include <vector>
std::vector<string> str_arr = {"a", "b", "c", "d"};

 

+ vector, string 같은 경우, <vector>, <string> 헤더 파일을 include 하지 않고

using namespace std; 만 선언해도 사용이 가능하긴하다. 

 

 

 

제출한 코드 

#include <iostream>
#include <array>
using namespace std;

int CalcTotalDays(int month, int day, int* monthTotalDays);

int main(){
    array<string,7> day_arr = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};

    int monthTotalDays[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int month,day;
    int totalDays;
    cin >> month >> day;
    
    totalDays = CalcTotalDays(month, day, monthTotalDays);
    // 요일 계산 
    cout << day_arr[(totalDays%7)];
}

int CalcTotalDays(int month, int day, int* monthTotalDays){ // 1/1일부터 month/day까지의 날짜 수 계산
    int totalDays = 0;
    for(int i=0;i<month-1;i++){
        totalDays += monthTotalDays[i];
    }
    totalDays += day;
    return totalDays;
}
728x90