20151022


*이 문제는 함정이 있습니다.
*이문제는 dovelet 에 있는 알고리즘 문제입니다.




maxandmin/maxandmin 








프로그램 명: maxandmin

제한시간: 1 초

두 개의 정수 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 
제한시간: 1 초


엑스 형은 와이 다.

와이는 엑스 보다 용돈을 매 달 일정한 배수 만큼의 용돈을 더 받는다.

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만 출력하면 되는거죠.

엉뚱한 곳에서 고민하고 있었네요ㅎㅎ





+ Recent posts