20161209


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

 

수영장 가는 날/swimming

프로그램 명: swimming

제한시간: 1 초

컴돌이는 월,수,금 수영을 신청했습니다.

  1. 월요일
  2. 화요일
  3. 수요일
  4. 목요일
  5. 금요일
  6. 토요일
  7. 일요일

만약의 경우를 위해 수영장 가는 날인지 아닌지를 체크해 주는 프로그램을 다음과 같이 작성하기로 했습니다.

입력

1 에서 7 사이의 자연수가 입력으로 주어진다.

출력

수영장 가는 날이면 enjoy , 아니면 oops 를 출력

입출력 예

입력

1

출력

enjoy

입력

4

출력

oops

 

 


 


제 풀이



1) 풀이

import java.io.PrintStream;
import java.util.Scanner;
public class Main {
 
 Scanner sc = new Scanner(System.in);
 PrintStream p = System.out;
 static int temp = 0;
 public static void main(String[] args)
 {
  
  Main ma = new Main();
  ma.input();
  
     if(temp == 1 || temp ==3 || temp == 5) System.out.println("enjoy");
     else System.out.println("oops");
    
 }
 
 void input()
 {
  temp = sc.nextInt();
 }
}

 




* 개인적인 풀이 내용입니다. 정해진 정답은 없습니다.


   1부터 7까지 숫자 중에서 1,3,5 일경우 "enjoy" 그 이외의 경우는 "ooops" 를 출력하는 문제 입니다.

   저는 if 문 안에 OR 연산자( || ) 를 사용해서 1, 3, 5 인경우 "enjoy" 를 출력하고 그 이외의 경우는 모두

   "oops" 를 출력하게 해줬습니다.

  

   다른 분들의 경우는 1, 3, 5 가 모두 홀수 이기 때문에 2로 나눈 나머지가 1 일때 enjoy 를 출력하도록 했습니다.

   하지만 7 인경우는 피하기 위해서 입력값이 7보다 작은 경우를 추가로 작성 하신 분들이 많습니다.

    if(temp %2 ==1 && temp <7)  이런식으로 간결해 졌네요.

 

 

 

 

 



아래 흰트 개념이 있습니다. 




흰트 개념



수영장 가는날 hint 논리 연산자를 연습하는 문제 입니다.

논리연산자는 세 가지

  • and 연산자(&&): 모두가 참인경우 참
  • or 연산자(||): 하나라도 참이면 참
  • not 연산자(!): 참을 거짓으로 , 거짓을 참으로 변경

이 문제에서는 or 연산자를 사용하면 됩니다.

1
2
3
4
5
6
7
int a;
 
if ( a == 1 || a == 3 || a == 5 ) {// a 값이 1 , 3 ,5 중에 하나이면 참
   ....
}else{
 .....
}

다음 형태로는 사용하지 못합니다.

1
a == 1 || 3 || 5  (x)

 



  

 

+ Recent posts