준호씨의 블로그

hackerrank - Compare the Triplets - Python3 본문

개발이야기/PS - Problem Solving, 알고리즘

hackerrank - Compare the Triplets - Python3

준호씨 2020. 4. 30. 16:42
반응형

문제: https://www.hackerrank.com/challenges/compare-the-triplets/problem

Alice와 Bob은 각각 해커 랭크 문제 하나씩 만들었습니다. 평가자는 두 문제를 평가하고 점수를 부여합니다. 문제의 명확성, 독창성, 난이도 3가지 카테고리에 1에서 100까지의 점수를 부여합니다.

Alice에 대한 평가를 a=(a[0], a[1], a[2]), Bob에 대한 평가를 b=(b[0], b[1], b[2])로 정의합니다.

당신이 할 일은 그들의 평가를 비교하여 점수를 매깁니다.

a[i] > b[i]이면 Alice가 1점을 얻습니다.

a[i] < b[i]이면 Bob이 1점을 얻습니다.

a[i] = b[i]이면 아무도 점수를 얻지 못합니다.

a와 b가 주어지면 점수를 정하시오.

예를 들어, a=[1,2,3]이고 b=[3,2,1]이 있습니다. a[0]<b[0]이기 때문에 Bob이 점수를 얻습니다. a[1]=b[1]이기 때문에 아무도 점수를 얻지 못합니다. a[2]>b[2]에서 Alice가 1점을 얻습니다. [1,1]을 리턴합니다. 첫 번째는 Alice, 두 번째는 Bob의 점수입니다.

Sample 0을 확인합니다.

5 6 7
3 6 10

첫 번째에서 Alice, 세 번째에서 Bob이 점수를 얻어서

1 1

이 됩니다.

Sample 1도 봅시다.

17 28 30
99 16 8

첫 번째에서 Bob이, 두 번째, 세 번째에서 Bob이 점수를 얻어서

2 1

가 됩니다.

코드를 구현해 봅시다. 템플릿 코드는 다음과 같습니다. compareTriplets함수를 구현하면 됩니다.

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the compareTriplets function below.
def compareTriplets(a, b):


if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    a = list(map(int, input().rstrip().split()))

    b = list(map(int, input().rstrip().split()))

    result = compareTriplets(a, b)

    fptr.write(' '.join(map(str, result)))
    fptr.write('\n')

    fptr.close()

입력을 받아서 list로 만드는 부분까지 이미 구현이 되어 있습니다.

아래처럼 구현해 보았습니다.

def compareTriplets(a, b):
    alice = 0
    bob = 0
    for i in range(3):
        if a[i] > b[i]:
            alice += 1
        elif a[i] < b[i]:
            bob += 1
    return [alice, bob]

alice, bob의 점수를 0으로 초기화 해 두고, 평가 카테고리 종류만큼 loop를 돌립니다. 3만큼 돌리면 됩니다.

각 평가 카테고리별로 평가를 비교하여 점수를 부여합니다.

완성 코드입니다.

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the compareTriplets function below.
def compareTriplets(a, b):
    alice = 0
    bob = 0
    for i in range(3):
        if a[i] > b[i]:
            alice += 1
        elif a[i] < b[i]:
            bob += 1
    return [alice, bob]

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    a = list(map(int, input().rstrip().split()))

    b = list(map(int, input().rstrip().split()))

    result = compareTriplets(a, b)

    fptr.write(' '.join(map(str, result)))
    fptr.write('\n')

    fptr.close()

 

반응형
Comments