반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준 알고리즘] 백준 16561번 3의 배수 자바(Java)

1) 문제번호 : 16561번

 

2) 문제 출처

www.acmicpc.net/problem/16561

 

16561번: 3의 배수

윤영이는 3의 배수 마니아이다. 그는 모든 자연수를 3개의 3의 배수의 자연수로 분해하는 것을 취미로 가지고 있다. 문득 그는 자신에게 주어진 수를 3개의 3의 배수로 분리하는 경우의 수가 몇

www.acmicpc.net

 

2. 문제

윤영이는 3의 배수 마니아이다. 그는 모든 자연수를 3개의 3의 배수의 자연수로 분해하는 것을 취미로 가지고 있다. 문득 그는 자신에게 주어진 수를 3개의 3의 배수로 분리하는 경우의 수가 몇 개인지 궁금해졌다. 하지만 윤영이는 마지막 학기이기 때문에 이런 계산을 하기에는 너무 게을러졌다. 그래서 당신에게 이 계산을 부탁했다.

즉, 임의의 3의 배수 자연수 n이 주어졌을 때, 해당 수를 3의 배수의 자연수 3개로 분리하는 방법의 개수를 출력해라. 단 분해한 수의 순서가 다르면 다른 방법으로 간주한다. 예를 들어 12 = 3 + 6 + 3 과 12 = 3 + 3 + 6 은 다른 방법이다.

 

3. 제약사항

4. 입력

임의의 3의 배수 자연수 n이 주어진다. (3 ≤ n ≤ 3000)

 

5. 출력

자연수 n을 분해하는 방법의 개수를 출력하라.

 

6. 풀이

- 3일 때는 0, 6일 때도 0, 9일 때는 1, 12일 때 3, 15일 때 6, 18일 때 10... 쭉 가면 1씩 증가한 등차수열 규칙을 찾을 수 있다.

 

7. 소스 코드

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();// 임의의 3의 배수
		
		int sum = 1;
		int count = 2;
		
		for(int i=9;i<N;i+=3) {
			sum += count;
			count += 1;
		}
		
		System.out.println(sum);
	}
}

 


 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기