99클럽 코테 스터디 4일차 TIL | 문자열을 정수로 바꾸기

fever·2024년 7월 25일
0

99클럽 코테 스터디

목록 보기
4/42
post-thumbnail

🛠️ 문제

💻 풀이

보자마자 너무 쉬워서 당황했던 문제...😂
이거 말고 다른 방법은 생각나지 않아서 무지성으로 함수를 사용했다.

class Solution {
    public int solution(String s) {
        return Integer.parseInt(s);
    }
}

막상 풀고 점수가 떨어지니 드는 생각... 만일, 함수를 쓰지 말고 직접 부호를 처리했으면 어떻게 했을까? 다른 분의 코드를 참고해보았다.

public class Solution {
    public int solution(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;
    }
 
}

이런식으로, 부호를 따지고 해당 부호에 따라서 계산을 해주면 된다!

🤔 고찰

  1. 코테에서 함수를 무작정 외우는 것보다 로직을 이해하고 푸는 연습이 필요하다.

🛠️ 추가 문제

  • 문제가 쉽다보니 미들러 문제도 풀어보면 좋을 것 같아서 미들러 문제도 풀어보았다!

💻 추가 풀이

class Solution {
    public String solution(String s) {
        StringBuilder answer = new StringBuilder();
        boolean b = true;
        
        for (char c : s.toCharArray()) {
            //전체 문자 순회
            if (c == ' ') {
                //공백이면 그대로 입력
                answer.append(c);
                b = true;
            } else if (b) {
                //공백 다음에 오는 문자는 대문자로 처리
                answer.append(Character.toUpperCase(c));
                b = false;
            } else {
                //다른 글자들은 소문자로
                answer.append(Character.toLowerCase(c));
            }
        }

        return answer.toString();
    }
}
  • 제일 중요한 건 문장을 구분하는 것이라고 생각해서 공백을 기준으로 boolean 값을 줬고, 공백 여부에 따라 대소문자를 구분하여 진행했다!
  • 처음엔 StringBuilder를 쓰지 않아 속도가 구렸으나 뒤늦게 추가해서 많이 줄어들었다 ㅋㅋㅋㅋ
profile
선명한 삶을 살기 위하여

0개의 댓글