https://softeer.ai/practice/7626

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

산타가 방문할 가능성이 있는 서로 다른 두 마을 조합의 수를 구하는 문제이다.

산타가 방문할 가능성이 있는 마을은 가장 거리가 가까운 두 마을이므로, 먼저 각 마을 간 최소 거리를 구한 후 모든 마을의 위치 조합을 구한다.

파이썬에서는 itertools 라이브러리를 사용해서 쉽게 조합을 얻을 수 있다.

각 마을 간 모든 조합을 구한 후, 최소 거리를 만족하는 조합만 카운트한다.

 

📝  내가 작성한 코드

import sys
from itertools import combinations

n = int(input())
towns = list(map(int, input().split()))
answer = 0

# 각 마을 간 최소 거리 구하기
dist = towns[1]-towns[0]
for idx1 in range(len(towns)-1, 0, -1):
    for idx2 in range(idx1):
        if towns[idx2+1] - towns[idx2] < dist:
            dist = towns[idx2+1]-towns[idx2]

# 모든 마을 위치 조합 구하기
towns = list(combinations(towns,2))

# 조합에서 마을간의 거리가 dist와 일치하는 경우에 answer + 1
for town in towns:
    a,b = town
    if b-a == dist:
        answer += 1

print(answer)

 

좀 더 깔끔하게 풀 수 있는 방법이 있을 것 같은데...ㅠㅠ

'개발 > 코딩테스트' 카테고리의 다른 글

[프로그래머스] 캐릭터의 좌표  (0) 2024.02.23
[Softeer] 위험한 효도  (0) 2024.02.22
[Softeer] 근무 시간  (0) 2024.02.22
[프로그래머스] 모의고사  (0) 2024.02.22
[프로그래머스] 배열 조각하기  (0) 2024.02.15

+ Recent posts