구름 LEVEL JAVA - 의좋은 형제 (난이도 1)
May 22, 2024
»
algorithm
구름 난이도 1 의좋은 형제
코드
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
int M1 = Integer.parseInt(input.split(" ")[0]); // 진우
int M2 = Integer.parseInt(input.split(" ")[1]); // 선우
int D = Integer.parseInt(br.readLine()); // 날짜
for( int i=0; i<D; i++ ) {
// 진우
if( i%2 == 0 )
{
// 짝수
if( M1%2 == 0 ) {
M1 = M1/2;
M2 = M2 + M1;
} else {
M1 = M1/2;
M2 = M2 + M1 + 1;
}
}
// 선우
else
{
// 짝수
if( M2%2 == 0 ) {
M2 = M2/2;
M1 = M1 + M2;
} else {
M2 = M2/2;
M1 = M1 + M2 + 1;
}
}
}
System.out.println( M1 + " " + M2 );
}
}
풀이
두번의 입력을 받을때 첫번째는 진우(M1) , 선우(M2) / 두번째는 날짜(D)
날짜까지 for 문을 돌며 진우,선우의 식량을 확인
진우,선우의 입력 값은 1보다는 크거나 같고 10의 4승보단 작거나 같다
날짜의 입력 값은 1보다는 크거나 같고 100 보다 작거나 같다
- M1 이 짝수일 때 M1은 절반으로 변경, M2는 이미 나눈 M1을 더한다.
- M1 이 홀수일 때 위와 동일하나 [ 문제 아래에 있는 입력란 ] 을 보면 1 보다 크거나 같다라서 + 1을 해준다.
- M2 도 위와 동일한 로직.