프로그래머스

99클럽 코테 스터디 2일차 TIL 숫자 문자열과 영단어

리콜 2024. 3. 30. 22:55

https://school.programmers.co.kr/learn/courses/30/lessons/81301?language=java

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

위와 같이 숫자의 일부분을 영어로 쓴뒤 원래의 숫자 형태로 복원하는 문제입니다.

 

문제를 읽은 뒤 처음 든 생각은

 

영어로 된 숫자가 중복으로 있을때 어떻게 알맞게 바꿀까 였습니다.

 

그러다 string의 replace를 사용하면 되겠다는 생각이 바로 들었고 코드를 작성하게 되었습니다.

class Solution {
    public int solution(String s) {
        String[] numbers = new String[]{"zero", "one", "two", "three", "four", "five",
                "six", "seven", "eight", "nine"};

        for(int i=0; i<10; i++){
            if(s.contains(numbers[i])){
                s = s.replace(numbers[i], Integer.toString(i));
            }
        }
        int answer = Integer.parseInt(s);
        return answer;

    }
}

 

 

하지만 아직 자바를 다시 잡은지 얼마 되지 않아 어려웠던 부분은 int형태를 toString으로 바꾸는 부분이 헷갈려 오히려 이부분이 시간이 더 들었습니다.

 

정리하자면 String -> Integer로 변환 할때에는 Intger.toString()을 사용해야한다는 것입니다.

 

하지만 기억을 되살리며 감에 따라 처음에는 numbers[i].toString()을 사용하려 하는등 약간의 뻘짓을 하였습니다;;

 

문제를 풀며 자바에 익숙해져감이 느껴졌고 조금 더 실력이 는다면

 

와 같은 제한사항도 고려하여 문제를 풀어야겠다고 생각했습니다.

3번째 제한사항과 유사한 형태가 많이 나오는데 

이부분은 answer가 int형이라는 것을 알 수 있는 힌트입니다.

반응형