-
프로그래머스 - 문자열을 정수로 바꾸기알고리즘 2022. 5. 29.반응형
public class P_19 { public int sol(String s) { // 문자열을 정수로 바꾸기 return Integer.parseInt(s); } public static void main(String[] args) { P_19 p = new P_19(); String s = "-123254"; System.out.println(p.sol(s)); } }
간단하게 통과 했지만 제약 조건에 전부 부합하지 않는다.
s의 길이 제한도 주지 않았고 s가 0으로 시작해도 걸려있는 제약은 없다.
단순하게 문자열이 들어가있을 경우 int로 치환이 안되어서 오류가 나오면서 팅구긴 하겠지만..
이렇게 짜도 프로그래머스에선 통과한다..
좋아요 많은 다른 사람 풀이
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")); } }
치환 과정을 직접 수동으로 구현한 사례
근데 코드를 훑어 보던중 이상한 점을 발견
return 값에서 +일 경우 삼항 연산자에서 true일 경우가 이상하다.
빠진 부분이 있어서 return 반환 값 연산하는 삼항 연산자를 고쳤다.
return Sign?1 * result : -1 * result;
이렇게 바꾸면 테스트 잘 통과한다.
반응형'알고리즘' 카테고리의 다른 글
프로그래머스 - MySql JOIN 보호소에서 중성화한 동물 (0) 2022.06.02 프로그래머스 - MySql GROUP BY 입양 시각 구하기(2) (0) 2022.05.30 프로그래머스 - 시저 암호 (0) 2022.05.27 프로그래머스 - 약수의 합 (0) 2022.05.14 프로그래머스 - 이상한 문자 만들기 (0) 2022.05.05