
Solution 1) 내 풀이
class Solution {
public int solution(String number) {
String[] strNumber = number.split("");
int answer = 0;
for(int i = 0; i < strNumber.length; i++) {
answer += Integer.parseInt(strNumber[i]);
}
return answer % 9;
}
}
Solution 2) 다른 사람의 풀이
class Solution {
public int solution(String number) {
return number.chars().map(c -> (c - '0') % 9).sum() % 9;
}
}
1. number를 .chars()로 문자 스트림으로 변환
2. map으로 각 문자를 정수로 변환(char 타입 9 - '0'은 문자 '9'에서 문자 '0'을 뺀 결과 int 9가 됨, char 타입 9 - 0은 char 타입 9의 아스키코드(정수57)에서 0을 뺀 결과로 57이 계산 됨)

이후 각 수들을 모두 나머지 연산자로 9로 나눈다.
3. .sum으로 나온 수들을 모두 합한 뒤 다시 한번 나머지 연산자 9를 사용해 답을 얻어낸다.
'연습문제 > 프로그래머스, 기초 트레이닝' 카테고리의 다른 글
| [프로그래머스 기초_java]문자열의 뒤의 n글자(substring) (0) | 2023.10.25 |
|---|---|
| [프로그래머스 기초_java]접미사 배열 (0) | 2023.10.25 |
| 문자열 여러 번 뒤집기 (0) | 2023.10.25 |
| 글자 이어 붙여 문자열 만들기 (StringBuilder) (0) | 2023.10.24 |
| 간단한 논리 연산(논리 연산자) (0) | 2023.10.24 |