#1330 두 수 비교하기
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
if(a>b) printf(">");
else if(a<b) printf("<");
else printf("==");
return 0;
}
처음에 생각한거는 걍 평범하게 if문 사용하는 것.
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
if(a==b) printf("==");
else printf(a>b?">":"<");
return 0;
}
숏코딩보니까 if문 안쓰고 puts(a>b?">":"<":"==");이런 방식이 있길래 따라해봤다.
근데 위에거 그대로는 안되길래 좀 바꿔서 씀
#9498 시험 성적
#include <stdio.h>
int main(void){
int grade;
scanf("%d", &grade);
if(grade>=90&&grade<=100) printf("A");
else if(grade>=80&&grade<90) printf("B");
else if(grade>=70&&grade<80) printf("C");
else if(grade>=60&&grade<70) printf("D");
else printf("F");
return 0;
}
시험점수가 0~100점이라는 제한이 있으므로, 더 정교하게 만들자면 이런 식으로 할 수 있다.
#include <stdio.h>
int main(void){
int score;
while(1){
printf("Enter a score: ");
scanf("%d", &score);
if(score>=0&&score<=100) break;
printf("0 <= grade <= 100\n");
}
printf("Grade: ");
if(score>=90&&score<=100) printf("A\n");
else if(score>=80&&score<90) printf("B\n");
else if(score>=70&&score<80) printf("C\n");
else if(score>=60&&score<70) printf("D\n");
else printf("F\n");
return 0;
}
충격적인 숏코딩 (일부)
무슨 의미인지 모르겠다.
printf("%c","FFFFFFDCBAA"[a/10]);
#2753 윤년
윤년 : 4의 배수이면서 100의 배수가 아니거나 400의 배수
예) 2012, 2000
#include <stdio.h>
int main(void){
int year;
scanf("%d", &year);
if(!(year%4)){
if((year%100!=0)||(year%400==0)) printf("1");
else printf("0");
}else printf("0");
return 0;
}
시행착오 끝에 성공~!
year%4에 괄호 안썼다가 틀리고 두번째 if문 else 안줬다가 틀림
if문을 이중으로 쓰지 않고 해보려고 머리를 굴린 결과 (틀림)
#include <stdio.h>
int main(void){
int year;
scanf("%d", &year);
if((year/4)%25!=0||(year/4)%100==0) printf("1");
else printf("0");
return 0;
}
이거는 되는지 궁금해서 해봄 (틀림)
#include <stdio.h>
int main(void){
int year;
scanf("%d", &year);
printf((year/4)%25!=0||(year/4)%100==0?"1":"0");
return 0;
}
식은 어떻게 더 줄이지
#14781 사분면 고르기
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
printf(a>0?(b>0?"1":"4"):(b>0?"2":"3"));
return 0;
}
겹쳐서 짜는 거 너무 힘들다... 머리 쥐어짜내기
여러가지 방법들 (맞음)
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
if(a>0){
if(b>0) printf("1");
else printf("4");
}else{
if(b>0) printf("2");
else printf("3");
}
return 0;
}
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
if(a>0) printf(b>0?"1":"4");
else printf(b>0?"2":"3");
return 0;
}
#2884 알람 시계
시각을 입력하고 45분 적게 출력하는 문제
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
if(a>0){
if(b>=45) printf("%d %d",a,b-45);
else printf("%d %d",a-1,b+15);
}else{
if(b>=45) printf("0 %d",b-45);
else printf("23 %d",b+15);
}
return 0;
}
여러가지 시도들(실패)
#include <stdio.h>
int main(void){
int a, b;
scanf("%d%d", &a, &b);
// printf("%d %d", a>0?(b>=45?a,b-45:a-1,b+15):(b>=45?a+23,b-45:a+23,b+15));
if(a>0) printf("%d %d", b>=45?a,b-45:a-1,b+15);
else printf("%d %d", b>=45?a,b-45:a+23,b+15);
printf("%d", b>=45?a+b:a-b);
return 0;
}
'BOJ(백준)' 카테고리의 다른 글
[C언어] 백준 - 1차원 배열 (10818, 2562, 2577, 3052) (0) | 2020.09.30 |
---|---|
[C언어] 백준 - while문(10952, 10951, 1110) (0) | 2020.08.30 |
[C언어] 백준 - for문(11021, 11022, 2438, 2439, 10871) (0) | 2020.08.29 |
[C언어] 백준 - for문(2739, 10950, 8393, 15552, 2741, 2742) (0) | 2020.08.29 |
[C언어] 백준 - 입출력과 사칙연산(1000, 1001, 10998, 1008, 10869, 10430, 2588) (0) | 2020.08.27 |