본문 바로가기

알고리즘/🥈 실버

백준 1769 3의 배수 자바 풀이

728x90

난이도 : 실버5

풀이일 : 2401044

https://www.acmicpc.net/problem/1769

 

1769번: 3의 배수

문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를

www.acmicpc.net


링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐

 


풀이코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class J04_b_1769 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String N = br.readLine();
		int count = 0;
		
		while(true) {
			if (N.length() == 1) {
				break;
			}
			int temp = 0;
			
			for (int i = 0; i < N.length(); i++) {
				temp += Integer.parseInt(String.valueOf(N.charAt(i)));
			}
			count += 1;
			N = String.valueOf(temp);
		}
		
		System.out.println(count);
		if (Integer.parseInt(String.valueOf(N)) % 3 == 0) {
			System.out.println("YES");
		} else {
			System.out.println("NO");
		}
	}
}
  • count : 몇 번의 변환을 거쳤는지 확인
  • temp : 각 자릿수를 더한 결과
  • 문자 형식으로 입력받은 숫자의 각 자리수를 순회하며 temp에 모두 더해준 뒤, temp를 문자열로 재할당한다.
  • 재할당 이후에는 count에 1을 더해 횟수를 센다.
  • temp가 한자리 수가 되면 반복문을 중단하고, 3의 배수 여부를 확인하여 결과를 출력한다.

느낀점

  • 자바 형변환 오랜만에 하니까 또 헷갈려서 조금 버벅거렸다. 무슨 회고가 늘 오랜만에 하니까 헷갈린다는 소리뿐이다.
  • 프로젝트도 급하고 재밌지만, 알고리즘도 재밌는데 얼른 다시 예전처럼 시간을 쏟고 실력을 올리자