[백준] 2480

UtsTem·2022년 8월 18일

백준 문제풀이

목록 보기
3/5

💻 문제 :

🧑‍💻 사용 언어: C99

✍️ 정답:

#include <stdio.h>
int main() {
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	if (a == b && b == c) printf("%d", 10000 + a * 1000);
	else if (a == b || a == c) printf("%d", 1000 + a * 100);
	else if (b == c) printf("%d", 1000 + b * 100);
	else printf("%d", 100*((a>b)?(a>c?a:c):(b>c?b:c)));
	return 0;
}

내가 깔쌈하다고 생각한, 그리고 내 수준에서 맞다고 생각한 정답임

🔪 내가 한 짓:

#include <stdio.h>

int main(void)
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    
    
    if (a!=b && b!=c && a!=c) 
        if (a>b && a>c) printf("%d", a*100);
        else if (b>a && b>c) printf("%d", b*100);
        else printf("%d", c*100);
    else if(a==b && b==c) printf("%d", 10000 + (a*1000));
    else if(a==b || a==c) printf("%d", 1000 + (a*100));
    else if(b==c) printf("%d", 1000 + (b*100));
    
    return 0;
}


줫.나. 드릅게 풀음(당연하게도 맞힘)
코드가 너더분함

왜냐면 삼항연산자가 기억이 안났거덩..
분명 깔끔하게 할 수 있는 연산자가 있었는데! 라고 생각만 하고 쓰진 못했음
그리고 걍 논리 자체도.. 너무 노가다식으로,, ㅋㅋ


😎

삼항 연산자

num1 ? 100 : 200;

이 있다고 하면, num1이 참이면 100반환, 거짓이면 200 반환.

else printf("%d", 100*((a>b)?(a>c?a:c):(b>c?b:c)));

a>b가 참이라면 a>c? a : c 반환, 거짓이면 b>c? b : c 반환.
a>c가 참이라면 a반환, 거짓이라면 c 반환.
b>c가 참이라면 b반환, 거짓이라면 c 반환.

참 쉬운건데, 막상 생각해내기는 어렵다,^^

profile
패기와 만용 그 사이에 있는 사람입니다

0개의 댓글