Algorithms/프로그래머스

[프로그래머스] Lv1. 문자열을 정수로 바꾸기, 가운데 글자 가져오기, 음양 더하기

devran 2023. 8. 22. 22:13
반응형

문자열을 정수로 바꾸기

문제 설명

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.

풀이

놀랍지만 겁먹었던 문제임

알고보니 부호는 Integer.parseInt로 해주면 String→Int 처리가 자유롭다는 깨달음을 얻음

class Solution {
    public int solution(String s) {
        int answer = 0;
        String arr[] = s.split("");
        answer = Integer.parseInt(s);
        return answer;
    }
}

가운데 글자 가져오기

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

풀이

스트링빌더를 써야하나 했는데,, 그렇게 까지 하지 않아도 된다

그냥 잘라서 담아주고, 홀수면 딱 중앙값, 홀수가 아니라면 두개를 뽑아줘야 하니 맞게 계산을 해주면 된다

import java.io.*;

class Solution {
    public String solution(String s) {
        String answer = "";
       // StringBuilder sb = new StringBuilder();
        
        String tmp[] = s.split("");    
        
        if (tmp.length % 2 != 0) { // 홀수면 
            answer = tmp[tmp.length/2];
        }
        else{
            answer = tmp[tmp.length/2-1] + tmp[tmp.length/2];
        }
        
        return answer;
    }
}

음양 더하기

문제 설명

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

풀이

class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;
        for(int i = 0; i < absolutes.length; i++){
            if(signs[i]){ // true
                answer += absolutes[i];
            }
            else{
                answer -= absolutes[i];
            }
        }       
        return answer;
    }
}
반응형