。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

ㅋㅌ

외계행성 나이구하기 // 집념의 if / String [] a = {"a","b"} / Integer.toString(age) // ASCII 코드를 이용한 풀이

quarrrter 2023. 6. 12. 20:16

Integer.toString(age)

String [] a = {"a","b"}

 

 

노가다로 구한 거 : 

class Solution {
    public String solution(int age) {
        String answer = "";
        String[] new_age = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};

        int a = 0;
        int b = 0;
        int c = 0;
        int d = 0;
        
        if(age == 1000) {
        a = 1;
        answer += new_age[a] + "";
        b = 0;
        answer += new_age[b] + "";
        c = 0;
        answer += new_age[c] + "";
        d = 0;
        answer += new_age[d] + "";
        } else if (age == 100) {
         a = 1;
         answer += new_age[a] + "";
        b = 0;
        answer += new_age[b] + "";
        c = 0;
        answer += new_age[c] + "";
        }
        else if(age == 10) {
        b = 1;
        answer += new_age[b]+"";
        c = 0;
        answer += new_age[c]+"";
        }
        else if(age == 0){
        c = 0;
        answer += new_age[c]+"";
        }
        else if (age >=100 && age < 1000) {
         a = age/100;
         answer += new_age[a] + "";
        b = (age-(a*100)) / 10;
        answer += new_age[b] + "";
        c = age - (a*100) - (b*10);
        answer += new_age[c] + "";
        } 
        else if(age < 100 && 10 < age) {
        b = age / 10;
        answer += new_age[b]+"";
        c = age - (b*10);
        answer += new_age[c]+"";
        }
        else if(10 > age && age >0) {
        c = age;
        answer += new_age[c]+"";
        }
        
        
        return answer;
    }
}

 

ASCII 코드를 이용한 ,,, 코드 

class Solution {
    public String solution(int age) {
        String answer = "";
        String str = Integer.toString(age);
        //Integer.toString(age) : age 변수의 값을 문자열로 변환하는 메서드

        for(int i=0;i<str.length();i++)
        {
            int a = str.charAt(i) + 49;
            answer += Character.toString((char)a);
        }
        return answer;
    }
}

코드에서 49를 더하는 이유는 ASCII 코드에 기반한 변환이 있기 때문입니다.

ASCII는 문자를 숫자로 나타내는 표준 코드 체계입니다. 예를 들어, 대문자 'A'는 ASCII 값 65에 해당하고, 소문자 'a'는 ASCII 값 97에 해당합니다. 숫자 '0'부터 '9'까지의 ASCII 값은 연속적으로 48부터 57까지입니다.

주어진 코드에서는 str.charAt(i)를 통해 얻은 문자의 ASCII 값을 변환하여 처리합니다. str.charAt(i)의 반환 값은 해당 문자의 ASCII 값입니다. 그래서 49를 더하여 변환된 ASCII 값을 얻는 것입니다.

이 코드의 작성자가 49를 더하는 이유는 문자 '0'의 ASCII 값이 48이기 때문입니다. 따라서 49를 더하면 '0'부터 시작하는 숫자에 해당하는 ASCII 값이 얻어지게 됩니다. 예를 들어, '0'의 ASCII 값에 49를 더하면 48 + 49 = 97이 되며, 이는 소문자 'a'의 ASCII 값과 일치합니다.

따라서 49를 더함으로써 str.charAt(i)의 반환 값에 49를 더한 ASCII 값이 얻어지게 되고, 이를 다시 문자로 변환하여 사용합니다.