Notice
Recent Posts
Recent Comments
Link
책 읽다가 코딩하다 죽을래
백준 1110번 더하기 사이클 문제 해답 본문
while문을 적절히 사용하여 푸는 문제다.
이 글을 포스팅 한 이유는 나는 이 문제를 가뿐히 성공했는데
남이 쓴 코드와 한번 비교해보니 배울 점이 있어서 포스팅한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int output = N;
int count = 0;
boolean isFirst = true;
int input1,input2,input3;
do {
if(isFirst) {
input1 = N / 10;
input2 = N - (input1 * 10);
input3 = input1 + input2;
if(9 < input3 ) {
int input4 = input3 / 10;
int input5 = input3 - input4 * 10;
output = (input2 * 10) + input5;
isFirst = false;
}else {
output = (input2 * 10) + input3;
isFirst = false;
}
} else {
input1 = output / 10;
input2 = output - (input1 * 10);
input3 = input1 + input2;
int input4 = input3 / 10;
int input5 = input3 - input4 * 10;
output = (input2 * 10) + input5;
}
count++;
}while (N != output);
System.out.println(count);
}
}
이것은 내가 짜놓은 코드이다.
이 문제의 정답이기도 하다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(br.readLine());
int count = 0;
int result = number;
do {
result = ((result % 10) * 10) + (((result / 10) + (result % 10)) % 10);
count++;
} while (number != result);
System.out.println(count);
}
}
이것은 아이디 : boen0323 의 코드이다
내가 짜놓은 코드와 이 분의 코드는 같은 역할을 한다. 그렇지만 처리 속도와 메모리 차원에서 이 분이 짜놓은 코드가 더 우수하다. 코드길이만 봐도 당연히 이 분께 더 좋아보인다.
앞으로 문제를 풀었다고 그냥 넘어가지말고 다른사람이 푼 것도 참고해서 배워가야겠다.
'코딩 > 알고리즘문제' 카테고리의 다른 글
[JAVA] 백준 2292번 : 벌집 문제 풀이 (0) | 2021.01.08 |
---|---|
[JAVA] 백준 10250번 : ACM 호텔 문제 풀이 (0) | 2021.01.06 |
백준 11502 세 개의 소수 문제 해답 (0) | 2020.03.19 |
백준 1978번 소수 찾기 문제 해답 (0) | 2020.02.28 |
[소수 찾기]에라토스테네스의 체 (0) | 2020.02.28 |