Skip to content

Commit 751e871

Browse files
committed
Add ReverseNumber implementation with tests
1 parent e185c1a commit 751e871

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package io.github.gunkim.algorithm.basic;
2+
3+
public class ReverseNumber {
4+
private final int value;
5+
6+
public ReverseNumber(int value) {
7+
this.value = value;
8+
}
9+
10+
public int reverse() {
11+
if (value == 0) {
12+
return value;
13+
}
14+
int number = Math.abs(value);
15+
int reversed = 0;
16+
while (number > 0) {
17+
reversed = (reversed * 10) + (number % 10);
18+
number /= 10;
19+
}
20+
21+
return value < 0 ? -reversed : reversed;
22+
}
23+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.github.gunkim.algorithm.basic;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Test;
5+
6+
import static org.assertj.core.api.Assertions.assertThat;
7+
8+
@DisplayName("숫자 뒤집기")
9+
class ReverseNumberTest {
10+
@Test
11+
void testPositiveNumber() {
12+
var reverseNumber = new ReverseNumber(123);
13+
int result = reverseNumber.reverse();
14+
15+
assertThat(result).isEqualTo(321);
16+
}
17+
18+
@Test
19+
void testNegativeNumber() {
20+
var reverseNumber = new ReverseNumber(-456);
21+
int result = reverseNumber.reverse();
22+
23+
assertThat(result).isEqualTo(-654);
24+
}
25+
26+
@Test
27+
void testSingleDigit() {
28+
var reverseNumber = new ReverseNumber(7);
29+
int result = reverseNumber.reverse();
30+
31+
assertThat(result).isEqualTo(7);
32+
}
33+
34+
@Test
35+
void testZero() {
36+
var reverseNumber = new ReverseNumber(0);
37+
int result = reverseNumber.reverse();
38+
39+
assertThat(result).isEqualTo(0);
40+
}
41+
}

0 commit comments

Comments
 (0)