코테/코드트리

[코드트리/NOVICE MID] 숫자들의 합 중 최대 (JAVA)

imname1am 2023. 10. 26. 16:59
반응형

🔺 문제

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

 

🔺 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.*;
import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");
        
        int X = Integer.parseInt(st.nextToken());
        int Y = Integer.parseInt(st.nextToken());
        
        int max = 0;
        for(int i = X ; i <= Y ; i++) {
            int tmp = 0;
            int num = i;
 
            while(num > 0) {    // 각 자리 쪼개기
                tmp += num % 10;
                num /= 10;
            }
 
            max = Math.max(max, tmp);    // 최댓값 갱신
        }
        System.out.println(max);
    }
}
cs

 

 

🧩  해결 아이디어

• 완전탐색

값을 기준으로 완전탐색한다.

자릿수별로 쪼개기 위해 Line 17-20의 과정을 거친다.

 

 

 


🔺 다른 풀이들

- while문 과정을 재귀로 풀 수도 있다!!

private static int digitSum(int num) {
	if(n < 10)	return n;
    return digitSum(n / 10) + (n % 10);
}

💬 느낀 점

빠르게 풀자..

 

 

1회독 2회독 3회독 4회독 5회독
V        
반응형