알고리즘/백준

[파이썬, 자바] BOJ_20363(당근 키우기)

딱따구르리 2021. 2. 15. 15:25
728x90
반응형

문제

 

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

 

20363번: 당근 키우기

첫째 줄에 X와 Y (0 ≤ X, Y ≤ 109)를 의미하는 정수가 공백으로 구분되어 주어진다.

www.acmicpc.net


 

해설

 

이 문제는 우선 자기가 예시를 만들어서 풀어보는 것이 좋다.

예시를 직접 손으로 풀다보면, 

한 가지 풀이 방법에 대한 의문이 생긴다.

그리고 그 의문을 코드로 옮겨보면 풀리는 문제이다.

 

위의 예시들을 직접 손으로 풀어봤을 때,

온기, 수분의 최소 합을 계산하면 각각 답이 빨간색 글씨 처럼 나온다.

이 것들을 살펴보면,

온기 + 수분 + (min(온기, 수분) / 10) 이 답이 된다는 것을 알 수 있다.

결국 이 계산식 대로만 풀면 되고, 백준에서 제시한 2번째 예시를 실행해보면

소수점 자리가 나오는 걸 알 수 있는데 이건 백준이 제시한 답 처럼 버림을 해주면 된다.


코드

 

-파이썬

#백준 20363(당근 키우기)
import math

x, y = map(int, input().split())  #온기, 수분

print(math.trunc(x + y + (min(x, y) / 10)))  #trunc == 버림

 

-자바

//백준 20363(당근 키우기)
import java.util.*;
import java.io.*;

public class Boj_20363 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int x = Integer.parseInt(st.nextToken());  //온기
		int y = Integer.parseInt(st.nextToken());  //수분
		
		System.out.println((int)(Math.floor(x + y + (Math.min(x, y) / 10))));  //floor == 버림
	}

}
728x90
반응형