다희의 코딩 성장일기
[JUNGOL] 정올 1009. 각 자리수의 역과 합(Number Reverse)_자바 JAVA 본문
[ 문제 ] 정올 1009. 각 자리수의 역과 합(Number Reverse)
문제 링크 : jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=288&sca=2040
[ 입출력 ]
[ 풀이 ]
< 접근 방법 및 풀이 >
- 입력받은 숫자를 역수로 어떻게 바꾸고 각자리 수의 합을 어떻게 구할지가 관건인 문제.
- 1. 역수로 바꾸기
- String 으로 입력받은 수를 StringBuffer의 reverse함수를 이용하면 쉽게 역수로 바꿀 수 있다. 하지만 type이 string이 아니므로 toString()을 통해 다시 string으로 바꿔준다.
- 2. 역수의 각 자리수 합 구하기
- for문을 통해 역수 String의 길이만큼 charAt()메소드를 통하 한글자씩 띄어 - '0' 계산하면 int로 변환된다. 그 값을 sum에 더해주면 끝.
< 주의할 점 >
- 역수로 바꾼 string을 그대로 출력했더니, 1597845100 으로 입력이 들어오면 0015487951로 출력되서, 꼭 int로 한번 바꿔주기!
JAVA코드
package 수학2;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import javax.sound.sampled.ReverbType;
public class 각자리수의역과합_1009 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
String s = sc.next(); //string 으로 입력
if(Integer.parseInt(s) == 0) break;
// 역수 구하기
String s2 = new StringBuffer(s).reverse().toString(); //스트링버퍼 이용해 입력받은 string 역수로 바꿈.
int num2 = Integer.parseInt(s2);
int sum = 0;
for (int i = 0; i < s2.length(); i++) {
sum += s2.charAt(i) - '0';
}
System.out.println( num2+ " " + sum);
}
}
}
(모바일일 경우 가로버전으로 보세요.)
REVIEW
자바는 진짜 String 관련 함수 잘 알면 문자열 처리에 유용하다는 걸 다시한번 느꼈다.
'Algorithm > 정올' 카테고리의 다른 글
[JUNGOL] 정올 1516. 단어 세기_자바 JAVA (0) | 2020.12.27 |
---|---|
[JUNGOL] 정올 1880. 암호풀기(Message Decowding)_자바 JAVA (0) | 2020.12.27 |
[JUNGOL] 정올 2857. 세로읽기_자바 JAVA (1) | 2020.12.27 |
[정올 Begginer_Coder - 문자열] 2514.문자열 찾기_자바JAVA (1) | 2020.12.14 |
[정올 Begginer_Coder - 문자열] 2604.그릇_자바JAVA (0) | 2020.12.14 |
Comments