20161209
*이문제는 dovelet 에 있는 알고리즘 문제입니다.
수영장 가는 날/swimming
프로그램 명: swimming
제한시간: 1 초
컴돌이는 월,수,금 수영을 신청했습니다.
- 월요일
- 화요일
- 수요일
- 목요일
- 금요일
- 토요일
- 일요일
만약의 경우를 위해 수영장 가는 날인지 아닌지를 체크해 주는 프로그램을 다음과 같이 작성하기로 했습니다.
입력
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) |
'알고리즘(dovelet 문제풀이) > 2층' 카테고리의 다른 글
지하 차도/truck (if , else if , else 조건문 문제): (0) | 2016.12.14 |
---|---|
해킹 회사/hack( If 조건문 문제) (0) | 2016.12.13 |
음표/codi note (정렬 구별 문제) (0) | 2016.12.09 |
분수 크기 비교/compare(분수 크기 비교 알고리즘) (0) | 2015.11.26 |
대소 판별하기/compare(대소 판별하기 알고리즘) (0) | 2015.11.26 |