본문 바로가기

코딩테스트/Coding Bat

[코딩뱃] [자바] Warmup - 1단계 : posNeg 문제

728x90
728x90

https://codingbat.com/prob/p159227

 

CodingBat Java Warmup-1 posNeg

Given 2 int values, return true if one is negative and one is positive. Except if the parameter "negative" is true, then return true only if both are negative.posNeg(1, -1, false) → trueposNeg(-1, 1, false) → trueposNeg(-4, -5, true) → trueGo...Save,

codingbat.com



= 문제 번역 =

2개의 int 값이 주어지면 하나는 음수이고 하나는 양수이면 true를 반환합니다.

"negative" 매개변수가 true이면, 둘 다 음수인 경우에만 true를 반환합니다.

문제가 약간 이상하게 나온거같다. 번역기를 돌리면,

("negative" 매개변수가 true인 경우를 제외하고 둘 다 음수인 경우에만 true를 반환합니다. )라고 나온다.

실제로 문제를 풀기 위한 조건같은 경우에는, 노란색 줄쳐진 부분으로 번역을 해서 문제를 풀어야 한다.

아래의 그림을 보면 확인할 수 있다. 

 

 

= 해설 =

< 1 >
public boolean posNeg(int a, int b, boolean negative) {
  if(((a>0&&b<0)||(a<0&&b>0))&&(negative==false)){
    return true;
  }else if((negative==true)&&(a<0&&b<0)){
    return true;
  }else return false;
}

< 2 >
public boolean posNeg(int a, int b, boolean negative) {
  if (negative) {
    return (a < 0 && b < 0);
  }
  else {
    return ((a < 0 && b > 0) || (a > 0 && b < 0));
  }
}

나는 생각보다, 복잡하게 풀었다 확실히 해설 보니까 더 빠르고 정확하게 문제를 풀 수 있구나 깨달았다.

2번 해설같이 내가 바로 짜낼 수 있으면 좋겠다.

728x90