Algorithm/HackerRank

[HackerRank]Compare the Triplets(풀이 성공)

전봇대파괴자 2021. 1. 16. 22:11

문제

 

Bob과 Alice가 게임을 하고 있다. 게임의 룰은 다음과 같다.

 

 

1. 길이가 동일하게 3인 리스트 A, B가 주어지고, 리스트의 모든 값은 정수이다.(단, 0≤A[i], B[i]100)

2. 두 리스트의 값을 차례로 비교하여 A의 값이 클 경우 Bob이 점수 1점을 얻는다. B의 값이 클 경우에는 Alice가 점수 1점을 얻는다. 

3. 비교할 값들이 같은 경우, 누구도 점수를 얻지 못한다. 

 

 

위의 규칙에 따라, Bob과 Alice가 각각 얻게 될 점수를 차례로 출력하라. 

 

Sample Input :

5 6 7
3 6 10

Sample Output :

1 1

 

내 코드:

import math
import os
import random
import re
import sys

def compareTriplets(a, b):
    num = len(a) # 리스트의 길이
    answer = [] # Bob과 Alice의 점수가 들어갈 리스트
    a_count=0 # Bob의 점수
    b_count=0 # Alice의 점수
    for i in range(num): # 두 리스트의 값을 비교
        if a[i] > b[i]:
            a_count += 1         
        elif a[i] < b[i]:
            b_count += 1
            
    
    answer.append(1*a_count)
    answer.append(1*b_count)
    return answer
            
            


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()

 

Comment: for문과 리스트의 인덱스를 활용해 쉽게 풀 수 있는 문제입니다. 다만, 이 코드는 길이가 같은 리스트들일 때만 사용할 수 있으므로 다른 문제에 적용하려면 그에 맞는 응용이 필요합니다.