πŸ“κ³΅λΆ€ν•œ λ‚΄μš© - [Java] 2908. μƒμˆ˜

μ΄ν•˜μ–€Β·2024λ…„ 1μ›” 31일
0

🐣 λ°±μ€€

λͺ©λ‘ 보기
4/33
post-thumbnail

βœ… 숫자 λ’€μ§‘κΈ°μ˜ μ•Œκ³ λ¦¬μ¦˜

πŸ”— https://insite.tistory.com/21

while (num != 0) {
	int digit = num % 10;  // ν˜„μž¬ 숫자의 일의 자리 수
	reverse = reverse * 10 + digit;  // 뒀집은 μˆ«μžμ— ν˜„μž¬ 자리의 수λ₯Ό μΆ”κ°€
	num /= 10;  // ν˜„μž¬ 자리의 수λ₯Ό 제거
}

System.out.println(reverse);  // λ’€μ§‘νžŒ 숫자 좜λ ₯

πŸ˜‰ μˆœμ„œ

[1회] κ°€μž₯ 큰 자릿수

  1. λ’€μ§‘μœΌλ €λŠ” 숫자λ₯Ό 10으둜 λ‚˜λˆˆλ‹€.
    num / 10 = λͺ« x1, λ‚˜λ¨Έμ§€ y1
  2. λ‚˜λ¨Έμ§€λ₯Ό 숫자의 κ°€μž₯ 큰 μžλ¦Ώμˆ˜μ— λ°°μΉ˜ν•œλ‹€.
    첫 μ‹œλ„ μ‹œ) 0 * 10 + λ‚˜λ¨Έμ§€ y1 = y1 0 0
    
     y1 _ _

[2회] 2번째둜 큰 자릿수

  1. 1회 μ‹€ν–‰ μ‹œ 얻은 λͺ«μ„ λ‹€μ‹œ 10으둜 λ‚˜λˆˆλ‹€.

    λͺ« x1 / 10 = λͺ« x2, λ‚˜λ¨Έμ§€ y2
  2. λ‚˜λ¨Έμ§€λ₯Ό 숫자의 2번째 큰 μžλ¦Ώμˆ˜μ— λ°°μΉ˜ν•œλ‹€.

    두 번째 μ‹œλ„) λ‚˜λ¨Έμ§€ y1 * 10 + λ‚˜λ¨Έμ§€ y2 = y1 y2 0
    y1 y2 _

    .
    .
    .


[n회] λͺ«μ΄ 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•œλ‹€.





πŸ’β€β™€οΈ 숫자λ₯Ό μ΄μš©ν•œ μ˜ˆμ‹œ

EX1) 734λ₯Ό 뒀집어 λ΄…μ‹œλ‹€.

[1회]
1. 734 / 10 = λͺ« 73, λ‚˜λ¨Έμ§€ 4
2. 0 * 10 + 4(ν˜„μž¬ λ‚˜λ¨Έμ§€) = 4

➑️ 4 _ _


[2회]
1. 73 / 10 = λͺ« 7, λ‚˜λ¨Έμ§€ 3
2. 4 * 10 + 3(ν˜„μž¬ λ‚˜λ¨Έμ§€) = 43

➑️ 4 3 _


[3회]
1. 7 / 10 = λͺ« 0, λ‚˜λ¨Έμ§€ 7
2. 43 * 10 + 7(ν˜„μž¬ λ‚˜λ¨Έμ§€) = 437

➑️ 4 3 7





⌨️ μ½”λ“œλ₯Ό μ΄μš©ν•œ μ˜ˆμ‹œ

// 첫 번째 반볡
int digit = num % 10;      // 734 % 10 = 4
reverse = reverse * 10 + digit;  // 0 * 10 + 4 = 4
num /= 10;                 // 734을 10으둜 λ‚˜λˆˆ λͺ«μ€ 73

// 두 번째 반볡
digit = num % 10;          // 73 % 10 = 3
reverse = reverse * 10 + digit;  // 4 * 10 + 3 = 43
num /= 10;                 // 73을 10으둜 λ‚˜λˆˆ λͺ«μ€ 7

// μ„Έ 번째 반볡
digit = num % 10;          // 7 % 10 = 7
reverse = reverse * 10 + digit;  // 43 * 10 + 7 = 437
num /= 10;                 // 7을 10으둜 λ‚˜λˆˆ λͺ«μ€ 0

// num이 0이 λ˜μ–΄ 반볡 μ’…λ£Œ

profile
μ–Έμ  κ°€ λ‚΄ μ½”λ“œλ‘œ 세상에 κΈ°μ—¬ν•  수 μžˆλ„λ‘, BE 개발 기둝 λ…ΈνŠΈβ˜˜οΈ

0개의 λŒ“κΈ€