Level. 1
문제
풀이
class Solution {
public int solution(String s) {
int answer = 0;
Boolean sign = true;
//answer = Integer.valueOf(s);
for(int i=0; i< s.length(); i++){
char c = s.charAt(i);
if(c == '-') sign = false;
else if(c != '+')
answer = answer * 10 + (c-'0');
}
return sign==true?answer:answer*-1;
}
}
Integer의 valueOf(), parseInt()를 사용하면 한 줄에 해결할 수 있으나,
API를 사용하지 않고 알고리즘을 통해 문제를 해결해보았다.
valueOf(), parseInt()를 쓰면 문자열 형태로 표현된 숫자를 정수타입 값으로 변환할 수 있다.
Integer.parseInt()
- 반환값으로 int타입을 반환하다.
- 반환되는 값은 객체가 아닌 기본 자료형 (Primitive Type)이다.
Integer.valueOf()
- 문자열의 값을 정수형으로 변환한 다음 Integer객체로 만들어서 반환한다. 리턴하는 값은 integer객체이다.
- new Integer(Integer.parseInt(s)) 값이 리턴된다.
참고 추가내용
int 와 Integer의 차이
int (primitive type / 기본자료형)
- int 는 변수의 타입 (data type)이다.
- 변수는 '값을 저장할 수 있는 메모리 상의 공간'을 의미한다.
- 자료형은 data의 타입에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이며, 기본형(primitive type) 참조형(reference type)으로 나뉜다.
- 기본 자료형(원시타입)
- boolean, char, byte, short, int, long, float, double - 참조형(참조타입)
- class, interface
- 기본 자료형(원시타입)
Integer (wrapper class)
- 프로그래밍을 하다면 기본타입의 데이터를 객체로 표현하는 경우가 종종 있는데, 기본타입을 객체로 다루기 위해 사용하는 클래스들을 래퍼클래스(wrapper class)라고 한다.
- Integer는 int의 레퍼클래스이다.
- wrapper class
- Integer, Double, Float, Long, Shot, Byte, Character, Boolean
- wrapper class
int와 Integer의 차이점
int
- 자료형이다.
- 산술 연산이 가능하다.
- null로 초기화가 불가능하다. 주로 0으로 초기화한다.
Integer
- unboxing(wrapper class -> primitive type 변환) 하지 않을경우 산술연산이 불가능하다.
- null값 처리가 가능하다. 따라서 SQL과 연동할 경우 처리가 용이하다.
wrapper class - primitive type 간의 변환
Boxing
Primitive Type -> Wrapper class
Integer a = new Integer(10);
Unboxing
Wrapper class -> Primitive Type
int b = a.intValue();
JDK 1.5 부터는 이를 자바 컴파일러가 자동으로 처리해 주기 때문에 신경 쓰지 않아도 된다.
https://sudo-minz.tistory.com/69
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스] 삼총사 / DFS (0) | 2023.05.06 |
---|---|
[프로그래머스] 시저암호 / isLowerCase (0) | 2023.04.29 |
[프로그래머스] 가운데 글자 가져오기 - substring (0) | 2023.04.11 |
[프로그래머스]문자열 내림차순으로 배치하기 (0) | 2023.04.11 |
[프로그래머스] 두 정수의 합 - Math클래스 (0) | 2023.04.10 |