Jaeyoung Kim
나의 개발 공부 일지
Jaeyoung Kim
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • WIL👨‍🏫 (16)
    • 🤖Algorithm (29)
    • 🖥CS (20)
      • 기술면접대비🔎 (10)
    • ✍️개발로그 (10)

블로그 메뉴

  • 홈
  • 방명록
  • 글쓰기
  • 설정

공지사항

인기 글

태그

  • til
  • SQLD
  • querydsl
  • 자바
  • API
  • HTTP
  • N-gram parser
  • 프로그래머스
  • Java
  • 백준2920
  • 회고록
  • transaction
  • 개발로그
  • WIL
  • 항해99
  • 데이터자료구조
  • rest
  • sql
  • 백준
  • 트랜잭션

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Jaeyoung Kim

나의 개발 공부 일지

[프로그래머스] 문자열을 정수로 바꾸기 Java
🤖Algorithm

[프로그래머스] 문자열을 정수로 바꾸기 Java

2022. 7. 16. 12:05
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
    '🤖Algorithm' 카테고리의 다른 글
    • [프로그래머스] 평균 구하기 Java
    • [프로그래머스] 음양 더하기 Java
    • [프로그래머스] 두 정수 사이의 합 Java
    • [프로그래머스] 가운데 글자 가져오기 Java
    Jaeyoung Kim
    Jaeyoung Kim
    보다 안정적인 코드 구현을 꿈꾸는 백엔드 개발자 지망생

    티스토리툴바