import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = 0;
if((a % 4 == 0 && a % 100 != 0) || a % 400 == 0){
b = 1;
}
System.out.println(b);
}
}
점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
System.out.print((x > 0 && y > 0)?1 : (x < 0 && y > 0)?2 : (x < 0 && y < 0)?3 : (x > 0 && y < 0)?4 : 0);
}
}
삼항연산자를 사용할 때는 (조건문)?참 : 거짓 의 형태이기 때문에
거짓일 때를 꼭 넣어줘야함
(x > 0 && y > 0)?1 : (x < 0 && y > 0)?2 : (x < 0 && y < 0)?3 : (x > 0 && y < 0)?4 만 넣으면 안되고
(x > 0 && y > 0)?1 : (x < 0 && y > 0)?2 : (x < 0 && y < 0)?3 : (x > 0 && y < 0)?4 : 0 까지 넣어야함
안지키면 컴파일 에러~~~ 😐
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int h = sc.nextInt();
int m = sc.nextInt();
if( m < 45 ){
if ( h == 0){
h = 24;
}
h--;
m += 15;
}else { m -= 45;}
System.out.println(h + " " + m);
}
}
중첩 if 문이 싫다면 삼항연산자로 바꿔서
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int h = sc.nextInt();
int m = sc.nextInt();
if( m < 45 ){
h = h == 0 ? 24 : h;
h--;
m += 15;
}else { m -= 45;}
System.out.println(h + " " + m);
}
}
정답이라고 나오긴 했는데 좀 가독성 떨어지는거같음 ㅎㅂㅎ
훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
a += c/60;
b += c%60;
if(b > 60){
a++;
b -= 60;
}
a = a >= 24 ? a-24 : a;
System.out.println(a + " " + b);
}
}
로 했는데 틀렸다
b 조건문에 > 가 아니라 >= 로 넣어야하기 때문임
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
a += c/60;
b += c%60;
if(b >= 60){
a++;
b -= 60;
}
a = a >= 24 ? a-24 : a;
System.out.println(a + " " + b);
}
}
로 바꿔서 정답
3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램
간단하게 만드는 방법 찾고싶은데 아이디어가 안떠오름
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int p = 0;
if (a < b){
p = (b<c)? c*100 : (b==c)? (1000 + c*100) : (a == c)? (1000 + c*100) : (b>c)? (b*100) : p ;
} else if( a == b ){
p = (b ==c)? (10000 + 1000*a) : (b>c)? (1000 + a*100) : (b<c)?(1000 + a*100) : p;
} else {
p = (b > c)? (a*100) : (b==c)? (1000 + c*100) : (a==c)? (1000 + c*100) : p;
if (b<c) {
p = (a>c)?(a*100) : (a==c)?(1000 + c*100) : (a<c)?(c*100) : p;
}
}
}
}
음 틀렸다.
내가 봐도 복잡하게 쓰긴했다
구글링을 통해서 Math의 max 함수를 사용한다는 힌트를 얻었다.
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int p = 0;
if (a == b && b == c) {
p = 10000 + 1000*a ;
} else if (a == b || b == c) {
p = 1000 + b*100;
} else if ( a == c ){
p = 1000 + a*100;
} else { p = Math.max(Math.max(a,b),c)*100 ; }
System.out.println(p);
}
}