20151022
*이 문제는 함정이 있습니다.
*이문제는 dovelet 에 있는 알고리즘 문제입니다.
maxandmin/maxandmin
프로그램 명: maxandmin
두 개의 정수 x,y에 대해서 max(x,y)는 둘 중 더 큰 수를 이야기하고, min(x,y) 는 둘 중 더 작은 수를 이야기한다.
예를 들면, max(5,3)=5 이고, min(2,1)=1 이다.
이 때 max(min(x,y),x) 를 구하는 것이 문제이다.
입력
두 정수 x,y 가 입력으로 주어진다. (x,y < 2^31)
출력
max(min(x,y),x) 값을 출력한다.
입출력 예
입력 4 3 출력 4
출처:jwvg0425프로그램 명: slant
엑스 형은 와이 다.
와이는 엑스 보다 용돈을 매 달 일정한 배수 만큼의 용돈을 더 받는다.
3 배 더 받는경우
- 엑스가 300 원 받으면 와이는 900 원
- 엑스가 400 원 받는 달은 와이는 1200 원
그런데 와이가 용돈이 적다고 불만이 많아 받은 금액에서 일정한 액수의 돈을 더 주기로 했다.
100 원 더 준다면
위 예에서는 1000 원 , 1300 원을 받게 된다.
엑스는 와이가 자기보다 용돈을 몇 배 더 받는지가 궁금했지만 형은 가르쳐 주지 않아 이렇게 질문을 했다.
"그러면 형님아 지난 달에 얼마를 , 이 번달에 얼마를 받았는지만 가르쳐 주"
와이 " 가르쳐 줄테니 몇 배 더 받는지는 알려고 하지마!!!"
엑스는 다음의 아이디어로 몇 배를 더 받는지를 알고자 한다.
"비가 같은 것 끼리 빼고 , 더하면 비가 같다 . 그런데 이 경우 빼 버리면 얹어 주는 돈이 없어지니 원하는 결과를 얻을 수 있다"
입력
동생과 형의 받는 용돈 두 번의 금액이 입력으로 주어진다.
출력
몇 배가 되는지를 출력한다. 정수배가 된다는 것은 보장된다.
입출력 예
입력 300 1000 400 1300 출력 3 100
채점데이터:cube
문제 풀이
1) 풀이
import java.io.PrintStream; import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); static PrintStream p = System.out; public static void main(String[] args) { int x = 0, y = 0; x = sc.nextInt(); y= sc.nextInt(); p.println(x); } }
*짧게 코딩하는것도 좋지만 저는 함수와 객체 지향개념을 쓰고 싶어서 이렇게 코딩 했습니다.
함정 문제 입니다. 넌센스? 같은 문제가 종종 나오네요.
저는 조건문 없이 최대 최소 를 어떻게 구분 할지 한참 고민하다가 그냥 if 문을 썼었는데
문제를 잘 보면 무조건 x 가 출력 되는 문제 입니다.
아직 이런 함정을 잘 보지 못하네요 ㅎㅎ
max(min(x,y),x) 값을 출력 하는데
잘 보면 x 값이 최소 값이여도 x 와 x 중에서 최대값을 출력해야 하니깐 어차피 x 가 나오고
y가 최소 값이 나오면 x 가 더 크다는 소리니깐 x 가 출력 됩니다. 그래서
if 를 안쓰고도 그냥 x만 출력하면 되는거죠.
엉뚱한 곳에서 고민하고 있었네요ㅎㅎ
'알고리즘(dovelet 문제풀이) > 1층' 카테고리의 다른 글
spot of light/spot(spot of light 알고리즘) (0) | 2015.10.23 |
---|---|
angle/open(angle 알고리즘) (0) | 2015.10.22 |
기울기/slant(기울기 알고리즘) (0) | 2015.10.22 |
버터 먹기/butter(버터 먹기 알고리즘) (2) | 2015.10.22 |
사탕/coci_slatkisi(사탕 알고리즘) (2) | 2015.10.21 |