👉 나의 solution String으로 변환하여 처리
public class Algorithm_Exercise {
public int sol(int num){
String m = String.valueOf(num);
int total = 0;
for (int i = 0; i < m.length(); i++){
total += Integer.parseInt(String.valueOf(m.charAt(i)));
}
return total;
}
}
위의 방법은 좋은 방법이 아님. 계속되는 형 변환은 비효율적 입니다.
👉 solution 몫과 나머지를 활용하여 해결
public class AlgorithmExerciseNewsol {
public int solution (int num){
int total = 0;
while (num > 0 ){
total += num%10;
num = num/10;
}
return total;
}
}
👉 나의 solution String으로 변환 후 length를 반환하기
public class AlgorithmExercise2 {
public int solution2(int num) {
String str = String.valueOf(num);
return str.length();
}
}
👉 solution 몫으로 해결
import java.util.Scanner;
public class AlgorithmExerciseMain2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int count = 0;
while (num > 0) {
num = num / 10;
count += 1;
}
System.out.println("입력한 숫자의 자릿수는 : "+count+"개 입니다.");
}
}
아쉬운점 : 문제 해결은 하였지만 계속 더 좋은 방법이 없을까 한번 더 생각해보지 않고 그냥 간단하게 보이는 해결 방법으로 문제를 해결할려고 함. 당연히 간단한 해결 방법으로 문제를 해결하면 가장 좋지만 이런 습관이 공간 복잡도, 시간 복잡도 등을 고려하지 않아 더 효율적이고 좋은 코드를 작성 할 수 없게 만든다.