코딩 공부/백준 코딩테스트

[백준 코딩테스트] 2480번 | C, C#, Python

maintain_H 2023. 4. 7. 13:51
반응형

[ 2480번 ]

2480번

[ C# ]

string[] ss = Console.ReadLine().Split();
int a = int.Parse(ss[0]);
int b = int.Parse(ss[1]);
int c = int.Parse(ss[2]);

int win;

if(a == b || a == c){
    if(b == c) win = 10000+a*1000;
    else win = 1000+a*100;
}
else if(b == c){
    if(a == b) win = 10000 +b* 1000;
    else win = 1000+b*100;
}
else {
    if (a > b && a > c) win = a * 100;
    else if(b>a&& b> c) win = b *100;
    else win = c * 100;
}

Console.Write(win);

 아니면 LIst 사용 하는 방법이 있다.

이게 더 간편하고 좋음!

string [] s = Console.ReadLine().Split();
List<int> num = new List<int>() { int.Parse(s[0]), int.Parse(s[1]), int.Parse(s[2]) };
num.Sort();
List<int> disNum = num.Distinct().ToList();

int sum = 0;
if (disNum.Count == 1) sum += 10000 + num[0] * 1000;
if (disNum.Count == 2) sum += 1000 + num[1] * 100;
if (disNum.Count == 3) sum += num[2] * 100;

Console.WriteLine(sum);

  Sort() : 정렬

 Distinct() : List에서 중복 제거

 Count : 리스트의 개수만약 모든 주사위가 3, 3, 3이라면 중복되는 3을 모두 제거해서 리스트에는 3밖에 남지 않는다.그때 리스트의 갯수를 센다면, 1개이기 때문에list.Count는 1이다.

[ Python ]

a, b, c = map(int, input().split())

if a == b == c:
    win = 10000 + a * 1000
elif a == b or a == c:
    win = 1000 + a * 100
elif b == c:
    win = 1000 + b * 100
else:
    win = max(a, b, c) * 100

print(win)

 max() 함수는 인수로 받은 자료형 안에서 최댓값을 반환한다.

 

또는 파이썬에도 리스트를 사용하는 방법이 있다.

s = map(int, input().split())
num = sorted(s)
disNum = list(set(num))

sum = 0
if len(disNum) == 1:
    sum += 10000 + num[0] * 1000
if len(disNum) == 2:
    sum += 1000 + num[1] * 100
if len(disNum) == 3:
    sum += num[2] * 100

print(sum)

sorted() 함수는 리스트를 오름차순으로 정렬한다.

set() 함수를 통해 중복된 값을 제거할 수 있다.

[ C ]

#include <stdio.h>

int main(){

    int a, b, c, win;
    scanf("%d %d %d", &a, &b, &c);

    if(a == b && b == c) win = 10000 + a * 1000;
    else if(a == b || a == c) win = 1000 + a * 100;
    else if(b == c) win = 1000 + b * 100;
    else win = 
        (a > b && a > c) ? a * 100 : ((b > a && b > c) ? b * 100 : c * 100);

    printf("%d", win);

}

 

반응형