๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/Programmers

[1๋‹จ๊ณ„] [Java] ์—ฐ์Šต๋ฌธ์ œ, ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ

by _silver 2026. 1. 15.

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ ๋งํฌ


 

1. ๋ฌธ์ œ ์ดํ•ด

์ •์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์˜ˆ) n = 123 → 1 + 2 + 3 = 6


2. ์ ‘๊ทผ ๋ฐฉ๋ฒ•
์ฃผ์˜ํ•  ์  : ๋จธ๋ฆฌ์— ๋„ฃ๊ณ  ์ ‘๊ทผํ•˜๋‹ˆ ์‰ฌ์›Œ์ง„๋‹ค!
- ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๋ ค๋ฉด '๋ฌธ์ž์—ด'์ด๋‚˜ '๋ฐฐ์—ด'์ผ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•˜๋‹ค.
- int์—๋Š” .length๊ฐ€ ์—†๋‹ค!
- inr๋Š” ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋‹ค!

 

โ–ผ 1์ฐจ ํ’€์ด : String์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผ

# int → String ๋ณ€ํ™˜ ํ›„, ํ•œ ๊ธ€์ž์”ฉ ๊บผ๋‚ด์„œ ๋”ํ•˜๊ธฐ

 

String.valueOf(n) : int๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

str.charAt(i) : i๋ฒˆ์งธ ๋ฌธ์ž ๊ฐ€์ ธ์˜ค๊ธฐ

- '0' : ๋ฌธ์ž '3' → ์ˆซ์ž 3์œผ๋กœ ๋ณ€ํ™˜
(๋ฌธ์ž '0'์€ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’ 48์ด๋ผ์„œ '3'(51) - '0'(48) = 3)

๋”๋ณด๊ธฐ
import java.util.*;

public class Solution {
    public int solution(int n) {
        
        int answer = 0;
        
        // int n์„ String์œผ๋กœ ๋ณ€ํ™˜
        String str = String.valueOf(n);
        
        // ๋ฌธ์ž '0' = ์ˆซ์ž 48
        for(int i = 0; i < str.length(); i++) {
            int digit = str.charAt(i) - '0';
            answer += digit;
        }

        return answer;
    }
}

์žฅ์ ๊ณผ ์•„์‰ฌ์šด์ 

# ์žฅ์ 

- ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ๋“  str.length()๋งŒํผ ์ž๋™์œผ๋กœ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

 

# ์•„์‰ฌ์šด์ 

- ์ˆซ์ž ๋ฌธ์ œ์ธ๋ฐ ๋ฌธ์ž์—ด ๋ณ€ํ™˜์ด ๋“ค์–ด๊ฐ€์„œ ๋ฒˆ๊ฑฐ๋กญ๋‹ค...

 


โ–ผ 2์ฐจ ํ’€์ด : ๋ฌธ์ž์—ด ์—†์ด ์ˆ˜ํ•™ ์—ฐ์‚ฐ์œผ๋กœ ํ•ด๊ฒฐ

# % 10์œผ๋กœ ๋งจ ๋’ค ์ž๋ฆฌ ๊บผ๋‚ด๊ณ , / 10์œผ๋กœ ํ•œ ์ž๋ฆฌ ์ œ๊ฑฐํ•˜๊ธฐ

123 % 10 = 3 → ๋’ค ์ž๋ฆฌ ๊บผ๋ƒ„

123 / 10 = 12 → ๋’ค ์ž๋ฆฌ ์ œ๊ฑฐ

๋ฐ˜๋ณตํ•˜๋ฉด 3 + 2 + 1

๋”๋ณด๊ธฐ
import java.util.*;

public class Solution {
    public int solution(int n) {
        
        int answer = 0;
        
        while(n > 0) {
            answer += n % 10;       // ๋งจ ๋’ค ์ˆซ์ž ๊ฐ€์ ธ์˜ค๊ธฐ
            n /= 10;                // ๋งจ ๋’ค ์ˆซ์ž ์ œ๊ฑฐ
        }

        return answer;
    }
}

์žฅ์ ๊ณผ ์ฃผ์˜ํ•  ์ 

# ์žฅ์ 

- ๋ฌธ์ž์—ด ๋ณ€ํ™˜์ด ์—†์–ด ๊น”๋”ํ•˜๋‹ค

- ์ž๋ฆฟ์ˆ˜์™€ ์ƒ๊ด€์—†์ด ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ˆซ์ž ์—ฐ์‚ฐ ๋ฐฉ์‹์ด๋ผ ์™ธ์›Œ๋‘˜๋งŒ ํ•˜๋‹ค

 

# ์ฃผ์˜ํ•  ์ 

n๊ฐ’์ด ๋ฐ˜๋ณต ๊ณผ์ •์—์„œ ์ค„์–ด ์ค„๊ธฐ ๋•Œ๋ฌธ์— ์›๋ณธ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด temp ๋ณ€์ˆ˜๋กœ ๋ณต์‚ฌํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


3. ์ตœ์ข… ๊ฒฐ๋ก 

- ์ธ๋ฑ์Šค๋กœ ์ ‘์Šจํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด String ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค.

- ํ•˜์ง€๋งŒ ์ˆซ์ž ๋ฌธ์ œ์—์„œ๋Š” %10, /10์œผ๋กœ ์ด์šฉํ•˜๋ฉด ๊น”๋”ํ•ด์ง„๋‹ค

 

[์ฐธ๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์šฉ์–ด]
while, ์ž๋ฆฟ์ˆ˜ ๋ถ„๋ฆฌ, ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ(%),
์ •์ˆ˜ ๋‚˜๋ˆ—์…ˆ(/), ๋ˆ„์ ํ•ฉ,
์ˆซ์ž ๋ณ€ํ™˜ charAt(), valueOf()