[ 백준 2908번 ] 상수
2022. 1. 3. 14:45ㆍ백준/단계별 문제
백준 2908번 / 7단계 / 상수
채점결과는 다음과 같다
메모리 | 시간 | |
1번째 방법 | 2024 KB | 0 ms |
문제 풀이
c++에 있는 라이브러리 이용하면 쉽게 풀 수 있고 문제풀이 원리는 라이브러리 동작원리 그대로입니다
1. 문자열 s1, s2 를 입력받고 reverse 함수를 이용해서 문자열을 반전 시켜줍니다
reverse 함수는 algorithm 헤더파일에 내장 되어 있습니다
INPUT = 734 893
s1 = 734
s2 = 893
reverse
s1 = 437
s2 = 398
2. 문자열끼리는 서로 누가큰지 수 계산을 못하기 때문에 문자열을 각 인덱스마다 정수형으로 변환해줘야 합니다
저는 c++ string 헤더파일의 stoi 함수를 이용해서 풀었습니다
반전된 문자열을 stoi 함수를 이용해서 아스키코드값을 계산해 자동으로 문자열 정수를 정수형 정수로 바꿔줍니다 같은 함수로 atoi 함수가 있지만 c++ string에서는 stoi 로 사용해줍니다 string 타입에서 atoi 를 사용해줄려면 c_str() 함수를 이용해서 string 타입을 char* 타입으로 변경해서 사용가능합니다
s1 = (string)437
s2 = (string)398
stoi
num1 = (int)437
num2 = (int)398
max = 437 > 398
max = 437
코드
#include <iostream>
#include <algorithm>
#include <string>
#include <math.h>
using namespace std;
int main() {
int num1, num2, result;
string s1;
string s2;
cin >> s1 >> s2;
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
// reverse: 문자열을 뒤집어주는 함수
num1 = stoi(s1);
num2 = stoi(s2);
// stoi: 아스키코드값을 계산해서 문자열을 정수형태로 변환해주는 함수
result = max(num1, num2);
cout << result;
}
'백준 > 단계별 문제' 카테고리의 다른 글
[ 백준 1152번 ] 단어의 개수 (0) | 2021.12.29 |
---|---|
[ 백준 1157번 ] 단어 공부 (0) | 2021.12.23 |
[ 백준 10809번 ] 문자열 반복 (0) | 2021.12.18 |
[ 백준 10809번 ] 알파벳 찾기 (0) | 2021.12.13 |
[ 백준 11720번 ] 숫자의 합 (0) | 2021.12.09 |