본문 바로가기

프로그래밍_백준/C++

(22)
(c++) 백준 2675 문자열 반복 문자열 반복 문제입니다! 제가 해결한 방법은 string을 통해서 해결했습니다. 먼저 cin은 기본적으로 \n이 있기에 getline() 함수가 제대로 작동하려면 cin.ignore()을 필수적으로 사용합니다. 또 str[0]은 char형의 "3"인데 이것을 '0'으로 빼주어서 int형 3으로 바꿉니다. #include #include using namespace std; int main() { int n;//반복할 횟수 string str; cin >> n; cin.ignore();//cin에는 기본적으로 \n이 있기 때문에 이를 제거해야 함. for (int a = 0; a < n; a++) { getline(cin, str);//반복할 횟수 (공백) 문자열 for (int i = 2; i < str..
(c++) 백준 2577번 숫자 개수 세기 [몫, 나머지 활용] 이번엔 나머지와 몫을 활용하여 풀겠습니다! #include using namespace std; int main() { int count[10] = {};//0~9 배열 생성 int a, b, c; cin >> a >> b >> c; int res = a * b * c; while(res != 0) {//res가 0이 될 때 까지 반복 count[res % 10]++;//10을 나눈 나머지를 인덱스로 활용 res /= 10;//자리수를 줄임 } for (int v : count) {//0~9까지 count 배열을 출력 cout
(c++) 백준 2577번 숫자의 개수 [string으로 변환, 범위 기반 for] 백준 2577번 문제입니다! 이 문제의 핵심은 0~9까지의 배열을 설정해서 값을 하나씩 증가 시키는 겁니다! 그 전에 for( : )문을 사용할려고 합니다! 이 표현이 생소할 수도 있어요 왜냐하면 최근에 새로 생긴 문법이거든요! 반복 횟수가 배열 요소의 개수에 맞춰서 자동으로 결정이 됩니다! for(요소변수:배열이름) to_string() 함수는 int->string으로 stoi() 함수는 string->int로 변환합니다. #include #include using namespace std; int main() { int a, b, c;//변수 a,b,c int count[10] = {};//0~9까지의 숫자 string d; cin >> a >> b >> c; d = to_string(a * b * ..
(c++)백준 1152번 strtok()함수 사용, char자료형 이번에는 strtok()함수로 해결하겠습니다! 먼저 strtok()함수는 문자열을 일정 기준으로 자를 수 있는 함수입니다! strtok()를 사용하기 위한 헤더파일은 이구요! 먼저 char*로 문자열을 받고 이를 하나 하나 잘라서 문자열의 포인터를 반환하는 함수입니다! strtok("문자열", "구분자") 형식 #include #include using namespace std; int main() { int num = 0; char str[10000]; gets_s(str);//scanf의 문자열 버전 char* word = strtok(str, " ");//띄어쓰기로 구분하고 단어를 저장 while (word != NULL) { num++; word = strtok(NULL, " ");//다음 단어을..
(c++)백준 1152번 단어의 개수/getline함수, string 자료형 사용 백준의 1152번 문제! 단어의 개수를 세는 문제입니다! 여기서 주의할 점은 맨 처음, 마지막이 띄어쓰기인 경우를 구분해야 합니다! 함수는 getline 함수를 사용했습니다. 그리고 string를 사용하기 위해 #include을 썼습니다! 혹시 getline을 모르시는 분을 위해 설명을 조금 하겠습니다! cin은 공백 이전까지만 입력을 받아서 공백을 포함해서 받을 수 없습니다. 반면에 getline() 함수는 가능하죠! getline()함수의 특징은 입력 가능한 최대 문자 수를 지정하지 않아도 됩니다! 그리고 delimiter를 만나기 전까지 모든 문자를 string에 저장합니다! #include #include using namespace std; int main() { int num=1;//첫 단어 ..
(c++)백준 10818번 최소, 최대 구하기 백준 10818번은 최소, 최대 구하기입니다! 예제 입력1 처럼 저는 공백으로 값을 구분해서 입력받고 싶었어요! 그래서 포인터를 이용했답니다! 그리고 최소, 최대를 구분하는 함수를 만들었습니다! #include int max_num(int num[], int n);//함수를 main함수보다 뒤에 쓰는 경우 먼저 함수 선언을 해야 합니다! int min_num(int num[], int n); int main() { int a, n, i; int* num;//포인터를 배열처럼 사용할 것 입니다!, 포인터 선언 std::cin >> n;//n값 입력 num = new int[n];//new로 배열을 동적으로 할당 하고, 할당된 메모리에 대한 주소를 반환합니다! for (i = 0; i < n; i++) { ..

728x90
반응형