문제 내용은 3의 배수 N을 입력으로 받아서, 3개의 3의 배수로 쪼개본다고 했을 때 N 3의 배수 3개로 쪼개는 방법은 몇 개가 있는지를 출력해주면 되는데 주의할 점은 9를 쪼갤 때 3 3 3 으로만 되고 6 3 0 이런 식으로는 불가능하다, 세 값 모두 최소 3은 되야 한다는 거다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int target = Integer.parseInt(br.readLine()) / 3;
int ans = 0;
for (int i = 1; i <= target; i++) {
for (int j = 1; j <= target - i; j++) {
if (target - i - j > 0) {
ans += 1;
}
}
}
System.out.println(ans);
}
}
문제를 풀어보자면 3의 배수면 결국 3으로 나눈 것과 별 차이가 없기 때문에, 계산을 편하기 위해 N을 받자마자 3으로 나눠주고 세 값의 경우의 수를 모두 세 주면 되는데
for 문을 두 번 돌리면서 1씩 올리며 두 값을 할당해주고 남은 값은 마지막에 몰아주고 세 수가 최소 1 이상인 경우에만 체크하도록 해서 for문을 돌린 후 체크한 횟수를 출력해주면 끝이다.
Leave a Reply