본문 바로가기
Algorithm/HackerRank

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

by 전봇대파괴자 2021. 1. 16.

문제

 

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