
* 문제 풀이
class Solution {
public int solution(String my_string) {
int answer = 0;
// 문자열에서 숫자만 추출
String str = my_string.replaceAll("[^0-9]", "");
// 각 문자를 숫자로 변환하여 더하기
for (int i = 0; i < str.length(); i++) {
answer += str.charAt(i) - '0'; // 각 문자 값을 숫자로 변환 후 더함
}
return answer;
}
}
charAt(i) - '0' ==> 숫자 문자를 정수로 변환
예로 문자 '3' 유니코드값 51

charAt(i) 문자에서 0의 유니코드인 48을 뺀다.
? 어떻게 정수가 되는가????? (설명 챗지피티)
자바에서 char 타입은 int와 호환이 되므로, 문자는 유니코드 값을 가진 정수처럼 계산할 수 있다. 문자 간의 뺄셈이 발생하면 자바는 각 문자를 유니코드 값으로 변환한 후 계산을 수행.
51 - 48 = 3
~> 결과는 정수 3
* 프로그래머스 다른 풀이
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
방법이 너무 많아
첨엔 문자를 숫자로 바꾼 후 배열로 만들어서 하나씩 떼와야 한다고 생각을 해서 배열로 어떻게 저떻게 바꾸려 했는데 안돼서 다른 방법을 찾아봄...
charAt() 함수로 할 수 있다.
'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글
| [프로그래머스/java/Lv.0] 자릿수 더하기 (0) | 2024.11.05 |
|---|---|
| [프로그래머스/java/Lv.0] 대문자와 소문자 (0) | 2024.11.04 |
| [프로그래머스/java/Lv.0] 문자열 붙여서 출력하기 (0) | 2024.10.31 |
| [프로그래머스/java/Lv.0] 개미 군단 (0) | 2024.10.30 |
| [프로그래머스/java/Lv.0] 배열 원소의 길이 (0) | 2024.10.29 |