
숫자로만 이루어진 문자열 n_str이 주어질 때, n_str을 정수로 변환하여 return하도록 solution 함수를 완성해주세요.
n_str ≤ 5n_str은 0부터 9까지의 정수 문자로만 이루어져 있습니다.| n_str | result |
|---|---|
| "10" | 10 |
| "8542" | 8542 |
입출력 예 #1
입출력 예 #2
"8542"처럼 숫자로만 이루어진 문자열Number() 사용function solution(n_str) {
return Number(n_str);
}
Number()인가?"0012"와 같이 앞자리 0이 포함되어도 정상 동작한다."10e2"(지수 표기), " 42 "(공백 포함)도 올바르게 처리가능하지만, 이번 문제에서는 입력 범위가 좁아 영향을 주지 않는다.실무 기준
API 파라미터, 환경 변수(
process.env.*), 쿼리 스트링 파싱 등에서 가장 일반적으로 사용되는 방법이다.명확한 의도 표출 + 예측 가능한 동작 = 협업 환경에서 가장 안전하다.
parseIntfunction solution(n_str) {
return parseInt(n_str, 10);
}
10을 명시하면 예상치 못한 진법 문제를 예방할 수 있다."10px" → 10)Number()와 차이가 없다.parseInt는 "정수 변환"이라는 의미가 강해 실수를 허용하지 않는다.+function solution(n_str) {
return +n_str;
}
" "(공백), " 42 " 등의 값 처리 시 동작이 명확히 보이지 않는다.실무에서는 팀 규칙에 따라 사용 여부가 달라진다.
퍼포먼스가 중요한 로우 레벨 로직에서는 사용되지만, 일반적인 웹백엔드/프론트 코드에서는 잘 쓰지 않는다.
parseFloat 사용입력이 정수 문자열이라는 점에서 불필요하다.
~~n_str (비트 연산자 활용)| 방식 | 의도 명확성 | 확장성 | 가독성 | 비고 |
|---|---|---|---|---|
Number() | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 가장 권장되는 방식 |
parseInt(n, 10) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 정수-only 상황에서 유용 |
+n | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | 아주 짧지만 의도가 모호함 |
~~n | ⭐ | ⭐ | ⭐ | 비트 연산 기반 트릭, 실무 비추천 |
이번 문제는 숫자만 주어지지만, 실제 서비스에서는 다음 케이스도 고려해야 한다.
"0012" → 앞자리 0" 42 " → 공백 포함 입력"10px" → 숫자 뒤 문자열 포함"" → 빈 문자열"1e3" → 지수 표기"Infinity" → 무한대"0000000000000000000001" → 매우 긴 숫자 (BigInt 고려)입력 정제와 숫자 변환 정책이 리스크를 줄이는 핵심이다.
최종 권장 코드:
function solution(n_str) {
return Number(n_str);
}