컨텐츠 검색
[프로그래머스/Day 3] 문자 → 숫자 변환, 수학 함수 cmath, 문자열 → 정수 변환, greater<char>()

2025. 12. 26. 10:00알고리즘

1. 문자 → 숫자 변환 (- '0')

문자열의 각 문자는 ASCII 코드 값으로 저장된다.
따라서 숫자 문자 '0'~'9'를 실제 정수로 바꾸려면 기준값 '0'을 빼준다.

char c = '5';
int n = c - '0'; // 5

2. 수학 함수 ()

헤더를 사용하면 기본 수학 연산을 함수로 표현할 수 있다.

#include <cmath>

pow(x, 2);   // x의 제곱
sqrt(n);     // n의 제곱근

※ pow는 double 기반이므로 정수 연산에는 주의.


3. 문자열 → 정수 변환

stoll("12345"); // string → long long
  • stoi → int
  • stoll → long long
  • 값이 범위를 넘으면 예외 발생

4. greater()의 의미

sort(s.begin(), s.end(), greater<char>());

위 코드는 내림차순 정렬이며, 아래 비교 함수와 완전히 동일하게 동작한다.

bool compare(char a, char b)
{
    return a > b;
}

즉, greater<T>()표준 라이브러리에서 제공하는 비교 함수 객체다.

기본값은 오름차순 정렬로, less<T>()가 들어간다.