728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int solution(String number) {
int sum = 0;
for (char c : number.toCharArray()) {
sum += c - '0'; // char를 int로 변환하여 덧셈
}
return sum % 9;
}
}
1 ) number 문자열을 문자 배열로 변환
2 ) 각 자리 숫자를 덧셈하여 sum 에 누적하기
이때, 각 문자의 숫자 값은 '0' 에서 빼서 얻을 수 있다.
문자에서 숫자값 얻기
'0' 은 아스키 코드에서 숫자 0의 값을 가지고 있으며, 다른 숫자 문자들은 이 값을 기준으로 숫자값을 가지고 있기 때문에 빼주면 해당 숫자값을 얻을 수 있습니다.
예를 들어 '5' - '0' 은 5를 얻게 됩니다
3 ) 문제에서 요구하는 대로, 각 자리수를 더한 값에서 9로 나눈 나머지값을 구한다.
# 문제를 시도하며 오류가 난 경우
class Solution {
public int solution(String number) {
int sum = 0;
sum = Integer.parseInt(number);
return sum % 9;
}
}
문제 설명대로라면 그냥 9로 나눈 나머지를 반환하면 되지않을까? 싶었다.
하지만 수가 큰 경우 다음과 같이 'NumberFormatException' 이 발생했다
int 가 아닌 Long 을 사용해보았지만 결과는 마찬가지였고 다른 방향으로 찾아본 결과 위와 같은 답을 낼 수 있었다.
728x90
'코테연습 > 프로그래머스' 카테고리의 다른 글
⭐ 코딩 기초 트레이닝 > 문자열 여러 번 뒤집기 java (0) | 2023.08.21 |
---|---|
코딩 기초 트레이닝 > 글자 이어 붙여 문자열 만들기 java (0) | 2023.08.17 |
⭐⭐ 코딩 기초 트레이닝 > 주사위 게임 3 Java ( 미완 ) (0) | 2023.07.31 |
코딩 기초 트레이닝 > 간단한 논리 연산 Java (0) | 2023.07.31 |
코딩 기초 트레이닝 > 콜라츠 수열 만들기 Java (0) | 2023.07.27 |