코딩테스트 연습 > 연습 문제 > 문자열을 정수로 바꾸기
2024. 7. 15. 00:48ㆍ코딩테스트 준비/JAVA
반응형
단순한 문제로
String 문자열을 Integer 형태로 바꾸는 문제이다.
String 문자열을 Integer 형태로 바꾸는 방법은 2가지이다.
Integer.parseInt();
Integer.valueof();
하지만 이 둘은 문자열을 정수로 변환해주는 메소드지만 차이점이 있다.
- 리턴타입
- 동작방식
1. 리턴 타입
- Integer.parseInt(String s); -> int 반환
- Integer.valueOf(String s); -> Integer 객체 반환
2. 동작 방식
- Integer.parseInt(String s); -> 문자열 파싱 후 int로 변환
- Integer.valueOf(String s); -> int값으로 반환 후에 Integer 객체로 반환
그러면 반환 타입이 valueOf는 Integer 형태인 객체를 반환하니까 안되지 않을까?
라는 궁금증을 가지고 valueOf도 넣어서 해봤지만 잘 되었다.
그 이유를 알아보니까
valueOf는 객체를 반환하지만 자바 내부에서 '언박싱' 이라는 기능을 사용해 int형으로 반환한다는 것이었다!
하지만 코딩테스트에서 중요한 부분은 시간복잡도와 코드의 성능이 굉장히 중요한 부분을 차지한다.
valueOf와 parseInt의 시간 복잡도는 모두 O(n)으로 같지만 valueOf는 중간에 언박싱 하는 상황때문에 코드 성능이 그렇게 좋진 않다.
결론은 valueOf()와 parseInt() 모두 사용해도 괜찮지만 코드 성능을 우선적으로 생각하면
parseInt()를 사용하는 것이 좋다.
class Solution {
public int solution(String s) {
int answer = 0;
answer = Integer.parseInt(s);
return answer;
}
}
반응형
'코딩테스트 준비 > JAVA' 카테고리의 다른 글
코딩테스트 연습 > 연습문제 > 최댓값과 최솟값 (0) | 2024.07.16 |
---|---|
코딩테스트 연습 > 연습문제 > 두 정수 사이의 합 (0) | 2024.07.14 |
코딩테스트 연습 > 연습문제 >핸드폰 번호 가리기 (0) | 2024.07.13 |