728x90
문자열을 정수로 바꾸기
문제설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한조건
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 "0"으로 시작하지 않습니다.
입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
기본코드
class Solution {
public int solution(String s) {
int answer = 0;
return answer;
}
}
문제풀이
문제를 보고 간단하게 생각했다.
아직은 잘 모르지만 문자열 함수를 숫자 함수로 변환시켜주기만 하면된다고.
String(s)에서 s의 길이는 1이상 5 이하라고 조건에 명시되어 있으니 int 함수만으로도 값을 받아낼 수 있다.
그렇담 String 함수를 int 함수로만 변환해주면 되는 것이다.
구글링 결과
문자열을 숫자로 바꿔주는 함수는 Integer.parseInt()
(여기서 개인적으로 함수 암기를 위하여 뜻 풀이를 하면 Integer는 정수를 의미하며 parse는 '분석하다'라는 뜻이다.)
추가적으로 숫자를 문자열로 바꿔주는 함수는 Integer.toString() 이다.
해당 함수를 사용하니 1줄도 더 적지않고 문제를 풀 수 있었다.
Solution.java
class Solution {
public int solution(String s) {
int answer = Integer.parseInt(s);
return answer;
}
}
"아, 이렇게 푸는거구나"라고 생각하고 다른 사람의 문제풀이를 확인하였는데 큰 충격을 받았다.
public class StrToInt {
public int getStrToInt(String str) {
boolean Sign = true;
int result = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == '-')
Sign = false;
else if(ch !='+')
result = result * 10 + (ch - '0');
}
return Sign?1:-1 * result;
}
//아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String args[]) {
StrToInt strToInt = new StrToInt();
System.out.println(strToInt.getStrToInt("-1234"));
}
}
이런 문제들을 알고리즘 문제라고 부르는 이유를 깨달았다.
생각하고 구조화하는 힘이 필요하다.
간단한 길로 가는 것만이 정답이 아닌 컴퓨터적 사고를 할 수 있는 능력을 좀 더 키우도록 노력해야겠다.
728x90
'🤖Algorithm' 카테고리의 다른 글
[프로그래머스] 평균 구하기 Java (0) | 2022.07.16 |
---|---|
[프로그래머스] 음양 더하기 Java (0) | 2022.07.16 |
[프로그래머스] 두 정수 사이의 합 Java (0) | 2022.07.15 |
[프로그래머스] 가운데 글자 가져오기 Java (0) | 2022.07.15 |
[프로그래머스] 직사각형 별찍기 Java (0) | 2022.07.15 |