[프로그래머스/Java/입문/❌] 숨어 있는 숫자의 덧셈

2023. 1. 15. 13:15·🐤 CodingTest/ᕕ(ꐦ°᷄д°᷅)ᕗ❌

 

 

 

🗣️ 메모

⭕️ 치기 위해서 푸는 중

 

 

 


 

 

 

✏️ [숨어 있는 숫자의 덧셈]

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

입출력 예


my_string result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16

입출력 예 설명

입출력 예 #1

  • "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.

입출력 예 #2

  • "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.

유의사항

  • 연속된 숫자도 각각 한 자리 숫자로 취급합니다.

 

 

 


🔥 TRY #1

👉🏻 문자열을 차례대로 char 배열에 넣음

👉🏻 각각의 index값을 아스키코드로 변환하면 숫자가 나오겠지?

import java.util.Arrays;

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        char[] arr = new char[my_string.length()];
        
        for(int i = 0; i < my_string.length(); i++) {
            arr[i] = my_string.charAt(i);
        }
        
        for(int j = 0; j < arr.length; j++) {
            System.out.println((int)arr[j]);
        }
        
        return answer;
    }
}

 

 

 

🔥 TRY #2

👉🏻 어차피 숫자는 1자리 수 0~9까지는 48~57이니까 int형으로 형 변환 한 숫자가 57 미만이면 그것은 숫자임

👉🏻 걔네만 arr에 넣어 주면 되겠지?

import java.util.Arrays;

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        char[] arr = new char[my_string.length()];
        
        for(int i = 0; i < my_string.length(); i++) {
            arr[i] = my_string.charAt(i);
        }
        
        for(int j = 0; j < arr.length; j++) {
            System.out.print((int)arr[j] + " ");
            System.out.print(arr[j] + " / ");

            if((int)arr[j] <= 57) {
                answer += arr[j];
            }
        }
        
        return answer;
    }
}

👉🏻 잘 뽑히긴 한 것 같은데 내가 원하는 숫자가 아닌 int형으로 형 변환 한 49, 50, 51, 52가 들어감

👉🏻 혹시 int로 형 변환 했으니까 다시 char로 형 변환  해 줘야 하나? 싶어 answer += (char)arr[j]로도 시도해 봤지만 어림없었음

 

 

 

🔥 TRY #3

👉🏻 int로 한번 변환한 배열은 자동으로 바뀌어서 들어가나? 싶어서 새로운 배열을 깊은 복사 한 후에 진행해 보기로 함

import java.util.Arrays;

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        char[] arr = new char[my_string.length()];
        
        for(int i = 0; i < my_string.length(); i++) {
            arr[i] = my_string.charAt(i);
        }
        
        char[] copyArr = new char[arr.length];
        copyArr = arr.clone();
        
//         for(int j = 0; j < arr.length; j++) {
//             System.out.print((int)arr[j] + " ");
//             System.out.print(arr[j] + " / ");

//             if((int)arr[j] <= 57) {
//                 answer += arr[j];
//             }
//         }
        
        for(int j = 0; j < copyArr.length; j++) {
            
            // System.out.print(copyArr[j] + " ");
            // System.out.print((int)arr[j] + " ");
            
            if((int)arr[j] <= 57) {
                System.out.print(copyArr[j] + " "); // 여기서는 잘 뽑히는데
                answer += copyArr[j]; // 값을 넣을 때는
                System.out.print(answer + " "); // int형으로 들어간다...?
            }
        }
        
        return answer;
    }
}

👉🏻 똑같다 왜지...?


 

 

 

🎉🎊💫✨⚡️⭐️🌟 [실행 결과]

코드 블록

 

 

 

 


출처: 프로그래머스 코딩 테스트 연습,https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

 

 

저작자표시 비영리 변경금지 (새창열림)
'🐤 CodingTest/ᕕ(ꐦ°᷄д°᷅)ᕗ❌' 카테고리의 다른 글
  • [프로그래머스/Java/입문/❌] 모음 제거
  • [프로그래머스/Java/입문/❌] 최빈값 구하기
  • [프로그래머스/Java/레벨 1/❌] 문자열 내림차순
  • [프로그래머스/Java/레벨 1/❌] 옹알이
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[프로그래머스/Java/입문/❌] 숨어 있는 숫자의 덧셈
상단으로

티스토리툴바