Q. 문자열을 정수로 바꾸기
A1.
class Solution {
public int solution(String s) {
int answer = 0;
//문자열을 정수형으로 변환하는 가장 쉬운 형변환은 valueOf나 parseInt를 쓰는것인데,
//valueOf를 사용하면 이런 방법으로 사용가능하다.
answer = Integer.valueOf(s);
return answer;
}
}
이 방법을 사용하면 간단하긴 하지만 알고리즘 형식이 아닌 것 같아서 다시 생각해서 풀어봤다.
A2.
class Solution {
public int solution(String s) {
int answer = 0;
int sign = 1; //부호를 1로 지정 = 양수로 설정
int startText = 0; //시작 문자를 비교해서 부호를 찾아야하니까 시작문자 선언
//charAt은 String 문자열로 된 글자 중에서 한글자만 char타입으로 변환해주는 역할을 함
//if문으로 첫번째 글자가 '-'일 경우 음수로 설정하고, '+'일 경우 그대로 두는 조건을 사용
if(s.charAt(0) == '-'){
sign = -1;
startText = 1; //부호가 젤 첫번째 글자고, 두번째 글자부터 숫자니까 이제 숫자를 비교하기 위해 startText를 1로 둠
} else if(s.charAt(0) == '+'){
startText = 1;
}
//i를 startText부터 시작해서 s의 길이까지 하나씩 증가하면서 charAt을 이용해 숫자로 변환
for(int i = startText; i<s.length(); i++){
//answer 값에 10을 곱해 자리수를 왼쪽으로 한칸씩 이동하면서, charAt을 이용해 문자열에서 i번째 문자를 가져옴
//가져온 후에 ASCII 코드에서 문자 0 의 값을 빼면 숫자로 변환됨
answer = answer * 10 + (s.charAt(i) - '0');
}
return answer * sign; //최종적으로 answer에 부호를 곱해주면 끝
}
}
'알고리즘, 코딩테스트' 카테고리의 다른 글
[프로그래머스/ 코딩테스트 연습문제] 정수 내림차순으로 배치하기 (0) | 2024.10.31 |
---|---|
[프로그래머스/ 코딩테스트 연습문제] 정수 제곱근 판별 (0) | 2024.10.31 |
[프로그래머스/ 코딩테스트 연습문제] 자연수 뒤집어 배열로 만들기 (0) | 2024.10.29 |
[프로그래머스/ 코딩테스트 연습문제] x만큼 간격이 있는 n개의 숫자 (0) | 2024.10.29 |
[프로그래머스/ 코딩테스트 월간코드챌린지 시즌3] 나머지가 1이 되는 수 찾기 (0) | 2024.10.29 |